首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

WSACleanup会导致内存泄漏么,该如何解决

2012-09-22 
WSACleanup会导致内存泄漏么C/C++ codeSOCKET MySocketWSADATA wsaDATAWSAStartup(MAKEWORD(2,2),&wsaDA

WSACleanup会导致内存泄漏么

C/C++ code
    SOCKET MySocket;    WSADATA wsaDATA;    WSAStartup(MAKEWORD(2,2),&wsaDATA);    if ( LOBYTE( wsaDATA.wVersion ) != 2 ||          HIBYTE( wsaDATA.wVersion ) != 2 ) {          AfxMessageBox("失败");          }     MySocket =socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);    closesocket(MySocket);    WSACleanup();


循环调用以上代码的时候会发现 内存无限增大
经过测试问题出在 WSACleanup() 这个函数上,注释掉它,就没有任何问题了,怎么回事,请有经验的说说

[解决办法]
循环调用以上代码,会频繁的加在DLL,又马上卸载DLL,开销很大
[解决办法]
WSACleanup()会终止所有操作然后卸载DLL。

而DLL被卸载后映像内存不一定立即被释放。

下次又加载到不同的内存地址,如此反复

热点排行