Мое диалоговое окно не отображается, когда я пытаюсь отобразить его в DllMain

Я создал Win32 dll в Visua Studio 2015, которая содержит диалоговое окно, я использую hModule, переданный DllMain () и использовать ShowWindow () на самом деле показать окно, но диалоговое окно не отображается.

я использую LoadLibrary() загрузить эту DLL в другой проект.

В чем проблема? Вот мой код:

BOOL APIENTRY DllMain( HMODULE hModule,
DWORD  ul_reason_for_call,
LPVOID lpReserved,
HINSTANCE hinstDLL
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
HWND hDlg;
MSG msg;
BOOL ret;
BOOL sts;

InitCommonControls();
hDlg = CreateDialogParam(hinstDLL, MAKEINTRESOURCE(IDD_DIALOG1), 0, DialogProc, 0);

if (!hDlg) {
MessageBoxA(NULL,GetLastErrorAsString().c_str(),"",MB_OK);
return false;
}

sts = ShowWindow(hDlg, 1);

if (!sts)
{
MessageBoxA(NULL, GetLastErrorAsString().c_str(), "", MB_OK);
return false;
}

while ((ret = GetMessage(&msg, 0, 0, 0)) != 0) {
if (ret == -1)
return -1;

if (!IsDialogMessage(hDlg, &msg)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]