IcmpSendEcho2实现Ping
最近需要实现的功能涉及或者某个网关的Ping值,但是如果使用Boost实现的话,在window 7操作系统下,由于权限的原因,创建raw socket会产生异常。所以,在windows 7操作系统下,只能通过IcmpSendEcho2这个函数来获得Ping值。关于这个函数的用法,可以参考MSDN来查看。
最近需要实现的功能涉及或者某个网关的Ping值,但是如果使用Boost实现的话,在window 7操作系统下,由于权限的原因,创建raw socket会产生异常。所以,在windows 7操作系统下,只能通过IcmpSendEcho2这个函数来获得Ping值。关于这个函数的用法,可以参考MSDN来查看。
在windows的程序开发中,如果需要输出调试信息一般可以OutputDebugString,使用DebugView就可以看到打出来的调试信息,不过,如果在一些跨平台的程序就不会用DebugView来调试,因为linux会编译通不过,但是,如果用了printf,在windows下又看到不到。
其实在VS 2005 & 2008里面有个命令叫editbin,进入vs 2005命令行提示,然后输入editbin就可以看到用法,如果对一个a.exe的程序执行以下命令
editbin /SUBSYSTEM:CONSOL "a.exe"
这样,这个a.exe在运行的时候,就会多一个控制台的窗口,里面可以看到所有printf打出来的信息。如果要取消,只需要把SUBSYSTEM改为Windows就可以了。
当程序中的对象使用了智能指针后,很有可能因为互相引用导致的内存泄露,这个时候,可以在程序运行过程中打印出每个对象的个数。原理就是自己写一个map,索引是对象的名字,值为个数,每次构造的时候++,每次析构的时候–。大概代码如下:
NSIS是一个开源的软件安装包制作工具,使用很简单,脚本的功能也比较强大。不过在最近的使用中发现了一个关于IfErrors的问题,其实脚本本身并没有什么问题,只是自己对脚本不了解才导致查了很久才解决遇到的这个BUG。
IfErrors 标签1 标签2,如果发生错误则进入标签1执行,否则进入标签2执行。但是我发现我的代码每次都会发生错误,进入标签1,但实际上并没有错,因为我读取到的值是正常的,终于无意中看到ClearErrors,顿时涣然大悟!最后在IfErrors之前需要添加一行ClearErrors,果然解决问题!
Google Test是谷歌公司一套开放的可用于C/C++语言的单元测试框架。目前gtest的最新版本是1.5.0。下载gtest之后,首先,需要打开gtest的项目进行编译。
最近遇到一个用户,启动软件就弹框报错,完全无法使用,然后一步一步调试跟踪,终于发现问题,讲出错代码定位在以下这行:
string remote_address = http_server_socket_->GetEndPoint().address().to_string();
在Windows程序开发时候,界面上经常会做一些超链接,但是由于MFC并没有这样的控件。于是我在网上发现了一个好用的超链接库,点击这里下载,其使用方法如下:
// 首先在.h文件中定义 CHyperLink m_HyperLink; // 在.cpp中DDX绑定,其中IDC_HYPERLINK是普通Static控件 DDX_Control(pDX, IDC_HYPERLINK, m_HyperLink); // 设置URL以及下划线 CString sUrl = "http://www.sizeof.cn"; m_HyperLink.SetURL(sUrl); m_HyperLink.SetUnderline(FALSE);
C++获得计算机网卡MAC地址,以下程序采用静态加载的办法来实现的,建议在实际项目中,动态加载iphlpapi.dll,来实现获得网卡MAC地址,因为不是每台计算机都有iphlpapi.dll这个问题的,如果是静态加载的话,就可能直接报错。代码如下:
Roller coasters are so much fun! It seems like everybody who visits the theme park wants to ride the roller coaster. Some people go alone; other people go in groups, and don’t want to board the roller coaster unless they can all go together. And everyone who rides the roller coaster wants to ride again. A ride costs 1 Euro per person; your job is to figure out how much money the roller coaster will make today.
阅读全文…
近期评论