关于dllmain中的创建新线程,然后...导致死锁
borz 2001-12-14 04:12:00 //dll name "dll2.dll"
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
HANDLE hThread;
DWORD ThreadId;
switch(ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
//DisableThreadLibraryCalls((HINSTANCE)hModule);
hThread = CreateThread(NULL,0,ThreadProcFun,NULL,0,&ThreadId);
WaitForSingleObject(hThread,INFINITE);
CloseHandle(hThread);
break;
case DLL_PROCESS_DETACH:
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
}
return TRUE;
}
在另一main cpp中
#include <windows.h>
#include <stdio.h>
typedef int(*PFUN_fnDll1)(void);
void main()
{
HINSTANCE hInstDll;
PFUN_fnDll1 pFun;
LPCSTR dllfile = "dll2.dll";
hInstDll = LoadLibrary(dllfile); //执行到这里时出现死锁
}
烦请各位给个死锁的理由