Я пытался создать DLL, которая создает диалог.Когда я компилирую его в исполняемый файл, появляется диалоговое окно, но когда я пытаюсь скомпилировать его в DLL, диалоговое окно не отображается.
LRESULT CALLBACK SubDiag(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
{
switch (Msg)
{
case WM_CLOSE:
EndDialog(hDlg, 0);
break;
default:
return FALSE;
break;
}
return false;
}
LRESULT CALLBACK MainDiag(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
{
switch (Msg)
{
case WM_INITDIALOG:
break;
case WM_COMMAND:
switch (LOWORD(wParam))
{
case ID_Button:
DialogBoxW(hInst, MAKEINTRESOURCEW(IDD_SUB), hDlg, DLGPROC(SubDiag));
break;
}
break;
case WM_CLOSE:
EndDialog(hDlg, 0);
break;
default:
return FALSE;
break;
}
return false;
}
DWORD WINAPI Thread(LPVOID dwParam)
{
HWND _hwnd = CreateDialogW(hInst, MAKEINTRESOURCE(IDD_MAIN), NULL, DLGPROC(MainDiag));
ShowWindow(_hwnd, SW_SHOW);
MSG msg = { 0 };
while (IsWindow(_hwnd) && GetMessage(&msg, NULL, 0, 0))
{
if (!IsDialogMessage(_hwnd, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return 0;
}
Почему это не работает в DLL?