在DLLMAIN中
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
{
WSADATA st_wsaData = {'\0'};
WSAStartup(MAKEWORD(2,2),&st_wsaData);
}
break;
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
{
WSACleanup();
}
break;
}第二次调用socket函数后返回错误提示说没有初始化。。 被封装成 DLL 应用层调用就出这个问题 为什么?
这个初始化一定要放在DLL里吗?在主函数里调用就行了吧。
WSAStartup内部调用了LoadLibrary之类的函数。所以不能放在DllMain里。