随笔分类 -  C++

c#调用c++dll库调用约定问题
摘要:DEBUG 错误现象提醒Run-TimeCheckFailure#0-ThevalueofESPwasnotproperlysavedacrossafunctioncall.Thisisusuallyaresultofcallingafunctiondeclaredwithonecallingcon... 阅读全文

posted @ 2014-09-11 17:22 致胜连盈 阅读(868) 评论(0) 推荐(0)

良好编程习惯的重要性
摘要:良好编程习惯的重要性1、拷贝字符串使用memcpy。虽然memcpy可以拷贝字符串,但是不严谨。当项目中有新手加入时,由于新手水平有限,在模仿前辈写代码时,使用memcpy不恰当,造成程序莫名错误或崩溃,难以发现。例如,memcpy(pstCmdPck->szIPAddr,stSrcComuType.pChn->GetRemoteIPAddrString(),MAX_IP_ADDR_LEN);经测试验证,这样的写法偶尔会引起程序崩溃的。源地址字符串没有达到指定的长度MAX_IP_ADDR_LEN,可能会造成memcpy不该访问的内存空间。2、int16和uint16,端口号本应该用 阅读全文

posted @ 2013-07-10 22:50 致胜连盈 阅读(516) 评论(0) 推荐(0)

网络通讯函数测试记录
摘要:1、对于非阻塞的WSAConnect 无论是否连上,都可以说是瞬间(2毫秒内)返回。假定指定超时时间是3秒:场景1:如果connect的服务端是一个无效的ip端口,此时用select可读去检测是否连接上,如果指定超时时间超过1秒钟比如3秒,则一般要1秒钟才返回结果,如果指定100毫秒,则100毫秒后返回。如果connect是成功的,则select瞬间返回。场景2:接收方程序异常,接收方接收缓冲区已满,而发送方的发送缓冲区也满了,此时发送方如果是检测是否可写,那是3秒。2、一个有效的套接字,可以随时设置为阻塞或者非阻塞模式,可以动态改变。3、在win7 32位系统上测试,TCP发送和接收缓冲区都 阅读全文

posted @ 2013-03-27 21:09 致胜连盈 阅读(248) 评论(0) 推荐(0)

.应该用CreateThread还是_beginthreadex(), 为什么?( 转载)
摘要:.如果要实现一个多线程(非MFC)程序, 选择多线程CRT, 创建线程的时候应该用CreateThread还是_beginthreadex(), 为什么?为什么要用C运行时库的_beginthreadex代替操作系统的CreateThread来创建线程?来源自自1999年7月MSJ杂志的《Win32 Q&A》栏目你也许会说我一直用CreateThread来创建线程,一直都工作得好好的,为什么要用_beginthreadex来代替CreateThread,下面让我来告诉你为什么。回答一个问题可以有两种方式,一种是简单的,一种是复杂的。如果你不愿意看下面的长篇大论,那我可以告诉你简单的答案 阅读全文

posted @ 2012-10-25 07:09 致胜连盈 阅读(389) 评论(0) 推荐(0)

导航