你好,歡迎大家.. 我想建立一個使用sdk 7.1的win32應用程序,我使用visual C++ 2012資源編輯器創建對話框,我複製RESOURCE.RC和RESOURCE.H我的文件夾,我寫這個簡單的main.cpp文件:我的對話框沒有顯示當我編譯使用sdk 7.1,
#include <windowsx.h>
#include <Windows.h>
#include <tchar.h>
#include "resource.h"
#define my_PROCESS_MESSAGE(hWnd, message, fn) \
case(message): \
return(\
SetDlgMsgResult(hWnd, uMsg, \
HANDLE_##message((hWnd), (wParam), (lParam), (fn)))) \
LRESULT CALLBACK DlgProc(HWND, UINT, WPARAM, LPARAM);
BOOL Cls_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam);
void Cls_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify);
int WINAPI _tWinMain( HINSTANCE hInstance,
HINSTANCE,
LPTSTR,
int iCmdLine )
{
DialogBoxParam( hInstance,
MAKEINTRESOURCE(IDD_INJECTOR),
NULL,
(DLGPROC) DlgProc,
NULL
);
return FALSE;
}
LRESULT CALLBACK DlgProc( HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam )
{
switch (uMsg)
{
my_PROCESS_MESSAGE(hwnd, WM_INITDIALOG, Cls_OnInitDialog);
my_PROCESS_MESSAGE(hwnd, WM_COMMAND, Cls_OnCommand);
default:
break;
}
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
BOOL Cls_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{
return TRUE;
}
void Cls_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
switch(id)
{
case IDCANCEL:
EndDialog(hwnd, id);
break;
default:
break;
}
}
然後我用下面的命令行編譯我的代碼,我至極這個論壇上發現
cl main.cpp /link /SUBSYSTEM:WINDOWS user32.lib
我的問題是我的對話框沒有顯示出來,當我使用procexp,t o看看會發生什麼,我發現我的應用程序是在同一時間創建並關閉的,而我想知道的是它在visual C++ 2012上的工作很好。
我的sdk 7.1,安裝正確,我測試了它沒有任何資源文件中的基本窗口
任何想法,生病是真的很感謝
最佳, Zirek
檢查DialogBoxParam'的'的返回值,如果它是'-1'檢查GetLastError'的'的返回值。這可能有助於說明發生了什麼。 – icabod