Afro Опубликовано 9 июля, 2014 Поделиться Опубликовано 9 июля, 2014 Проблема в том, что не получается открыть поток в dll, приложение крашится.Изначально все скатал под чистУю у кодера (в уроке):#include <Windows.h>DWORD WINAPI Thread();bool APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved){if (ul_reason_for_call == DLL_PROCESS_ATTACH){ CreateThread(NULL, NULL, Thread, NULL, NULL, NULL);}}DWORD WINAPI Thread(){//Do somethingreturn S_OK;}Потом полез в инет и нашёл фразу "За исключением периода инициализации", то есть как я понял в самом DllMain нельзя задерживаться и поток надо создавать отдельно поэтому написал вот так:#include <Windows.h>DWORD WINAPI Thread();void CreateThrd(){CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)Thread, NULL, NULL, NULL);return;}bool APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved){if (ul_reason_for_call == DLL_PROCESS_ATTACH){ CreateThrd();}}DWORD WINAPI Thread(){for (;;Sleep(1000)){ MessageBox(NULL, "Msg from thread", MB_OK, NULL);}return S_OK;}Но и это тоже к сожалению не проканало, кстати меседжбокс не вылез.Где то ещё было про какие-то обозначения или метки выхода из потока, но это я не вкурил.Кто знает в чем трабла?UPD. Странно, но проблема решилась куда более простым путём: тупо забыл указать возвращаемое значение в ф-ции DllMain.Но теперь интересует обратный вопрос, почему когда на мсдне пишут что создавать потоки нельзя, тут такой беспредел творится? (MSDN) Ссылка на комментарий Поделиться на другие сайты Поделиться
Coder Опубликовано 10 июля, 2014 Поделиться Опубликовано 10 июля, 2014 DllMain должна вернуть значение 1.Если возвращается значение 0, то dll выгружается из программы.И ты смотришь MFC, а не голый C++/ Ссылка на комментарий Поделиться на другие сайты Поделиться
Afro Опубликовано 11 июля, 2014 Автор Поделиться Опубликовано 11 июля, 2014 В 10.07.2014 в 12:31, Coder сказал: DllMain должна вернуть значение 1.Если возвращается значение 0, то dll выгружается из программы.И ты смотришь MFC, а не голый C++/Да, разобрался, спасибо Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения