Win32API質問箱 Build17
■ このスレッドは過去ログ倉庫に格納されています
0784デフォルトの名無しさん
NGNGDLLがロードされたときスレッドを起動し、アンロードされたとき停止するようにしたいため、
以下のようなコードを書いたのですが、
WaitForSingleObjectのところで永久に待ち状態になってしまいます。
何がいけないのでしょうか。
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) {
if (fdwReason == DLL_PROCESS_ATTACH) {
DisableThreadLibraryCalls(hinstDLL);
run = true;
hThread = CreateThread(0, 0, Thread, 0, 0, 0);
}
else if (fdwReason == DLL_PROCESS_DETACH) {
run = false;
WaitForSingleObject(hThread, INFINITE); // ← ここでロックしてしまう。
CloseHandle(hThread);
}
return TRUE;
}
DWORD Thread() {
for ( ; ; ) {
if (!run) {
return ERROR_SUCCESS;
}
Sleep(1000);
}
return ERROR_SUCCESS;
}
■ このスレッドは過去ログ倉庫に格納されています