C/C++
贵子潘
其实我只想不为材米油盐而开一家客栈
展开
-
CAtlHttpClient的一个严重bug
我写的一个程序要从http服务器下载xml文件,就用了CAtlHttpClient这个http客户端类。在xml文件比较小的时候一切都顺利,但当xml文件超过1M后,问题就时不时出现:不能下载xml文件了! 什么原因呢? 只能在本机调试了。为了尽快重现bug,我把xml文件增大到了3M多,下载的周期也由原来的2分钟缩短到30秒...经过20多个周期问题又重现了:不能下载xml原创 2007-09-01 12:39:00 · 2063 阅读 · 0 评论 -
服务器内部模块间的消息通知机制
以前写服务器程序时,模块之间的数据传输都是通过接口来实现的,但个人认为有以下几个缺点:1、因为是同步调用,所以会阻塞消息,降低处理消息的速度,自然影响消息处理量了2、容易造成死锁如果能异步处理就很NICE了C++不知有类似成熟的模块没?原创 2011-12-21 10:47:07 · 1184 阅读 · 1 评论 -
R6025 ---Pure virtual functmm call的错误之一
今天在调试一个程序,在退出时,突然出现这样的错误: “Runtime Error! ....R6025 ---Pure virtual functmm call ” 捉摸了一会,发生了问题所在。 我这是一个DLL,是在FreeLibrary里出的错误原创 2011-08-10 17:41:24 · 2040 阅读 · 0 评论 -
写UDP上传文件服务器时值得注意的几点
把一个文件拆成多个块上传机制的UDP服务器,需要注意的几点(即有文件位图,块位图的上传方式)1、被动接收端(UDP服务器)的块管理器不要限制块个数,不要有达到了几个块后删除块的想法,不然客户端和服务器的块个数不对等后,服务器端还没有上传完的数据块会被对冲掉。 服务原创 2011-07-29 16:26:48 · 946 阅读 · 0 评论 -
boost::iostream::file使用时,会碰到的几个问题
<br />boost::iostream::file 可以读写文件<br />boost::iostream::file_source 读文件<br />boost::iostream::file_sink 写文件<br /> <br />1、<br />当一个文件的内容以二进制读时,要加上BOOST_IOS::binary,不然在读数据时会以字符形式读,这样碰到包含文件结束符的字符时,读操作就结束了。换句话说,可能你想读1024个字节,也许只能读出几十个字节来。<br /> <br />2、关于路径的问原创 2011-05-06 16:58:00 · 1683 阅读 · 0 评论 -
乌龙呀,中了assert的招
我说DEBUG版本能接受数据,为什么release版本却不能?原来是我上次为了调试拼接TCP数据包,而把分发数据包的函数放到了assert中release后,分发函数木有了原创 2011-06-09 12:52:00 · 1035 阅读 · 0 评论 -
boost::asio TCP链接发生错误代码2的原因-End of file
刚使用ASIO不久。今天调试一个用boost::asio库写的客户端和服务器程序客户端连接上了,然后投递了一个async_receive IO,但接着处理此IO的recv_handler就收到了错误,错误代码为2,message为"End of file"看了客户端程序,怎么也想不明白这个错误是怎么发生的然后请教了同事,经过一通调试,才发现是服务器收到链接后,因为逻辑上的问题,没有投递async_receive IO,导致此连接上没有接受数据的buffer,所以ASIO系统就自动了关闭了此连接,因此客户端就原创 2011-04-20 18:53:00 · 9277 阅读 · 0 评论 -
解决boost::asio的WinSock.h has already been included
<br />开始使用boost::asio库时,编译碰到这个错误提示:<br />fatal error C1189: #error : WinSock.h has already been included<br />查了下抛出这个错误的boost代码,原来是定义了_WINSOCKAPI_,但没有定义_WINSOCK2API_<br />那哪里定义了_WINSOCKAPI_呢?<br />后来在网上查了下,原来是我包含了Windows.h头文件,而Windows.h头文件又包含了WinSock.h这个老原创 2010-09-08 11:05:00 · 11172 阅读 · 5 评论 -
TUT要开启RTTI
听说TUT是一个很轻量级的C++单元测试框架.我喜欢简单,轻量等字眼,所以就去下了个试试(http://tut-framework.sourceforge.net/) . 用它自带的例子测试,发现改了ensure的第二个参数为false时,弹出Debug Error对话框:(---------------------------Microsoft Visual C++ Debug Libra原创 2008-10-07 12:24:00 · 1137 阅读 · 0 评论 -
error C2061: 语法错误 : 标识符“_Wherenode” 的错误
今天用vc7.1建了个支付MFC的控制台测试工程,用TUT单元测试框架.在包含:#include #include 时,出现error C2061: 语法错误 : 标识符“_Wherenode” 的错误.这肯定是MFC捣的鬼.因为我用纯console工程时,没有这个出错的. 上网google了下,在一国外网站找到了答案:是DEBUG_NEW宏搞的鬼.只要xtree.h包含在定义这个宏之前原创 2008-10-07 14:30:00 · 6988 阅读 · 1 评论 -
使用boost时,编译没通过--无法解析外部符号
今天用ATL写一个组件,用上了boost里的shared_ptr智能指针.但编译的时候,老说有一个外部符号无法解析:“PPSChannelListGet error LNK2019: 无法解析的外部符号 "void __cdecl boost::throw_exception(class exception const &)" (?throw_exception@boost@@YAXABV原创 2008-03-19 18:39:00 · 2414 阅读 · 0 评论 -
IpPrefixOriginOther redefinition类型重复定义的错误
今天把一个VS2003工程转到V2008,发生了100多个错误一看,是IpPrefixOriginOther redefinition重复定义肯定是有两个头文件都包含了IpPrefixOriginOther看错误发现baseclass\iphelper\iptypes.h头文件和C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\原创 2012-02-22 11:10:23 · 949 阅读 · 0 评论