我嘗試做我的WinMain出了問題。我在Windows C++編程中完全禁用,我嘗試學習。我遵循tutoriel來幫助我。但看起來不行! 這裏是我的代碼..我開始學習WINAPI和C++,但有什麼不對嗎?
#include <Windows.h>
LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
HWND hWnd;
WNDCLASSEX wc;
ZeroMemory(&wc, sizeof(WNDCLASSEX));
wc.cbSize = sizeof(WNDCLASSEX);
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WindowProc;
wc.hInstance = hInstance;
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)COLOR_WINDOW;
wc.lpszClassName = "WindowClass1";
RegisterClassEx(&wc);
hWnd = CreateWindowEx(NULL, "WindowClass1", "Our First Windowed app", WS_OVERLAPPEDWINDOW, 300, 300, 500, 400, NULL, NULL, hInstance, NULL);
ShowWindow(hWnd, SW_SHOW);
MSG msg;
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
//return 0;
}
LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
{
case WM_DESTROY:
{
PostQuitMessage(0);
return 0;
} break;
}
}
當我編譯,我沒有錯誤,但是當我運行應用程序時,我在我的任務欄,僅此而已只有應用程序圖標。在任務管理器中,我看到了2個應用程序實例。
什麼和我在哪裏錯了?
非常感謝您的幫助!
我會說,當我開始學習WinAPI時,我發現它絕對是非常挑剔的。除非每個細節都完全正確,否則代碼不起作用,並且沒有有意義的錯誤消息。 – 2012-08-03 19:08:34
正常的操作過程是調試。跟蹤您的程序,查看API函數返回的值。 RegisterClassEx()是成功還是失敗?是'CreateWindowEx()'?你的窗口過程是否被調用?將來,在StackOverflow上詢問之前,嘗試調試自己。 – 2012-08-03 19:10:54
塞瓦,就像我說的。我開始學習。對不起,如果它不是我們學習時發佈問題的地方..我已經嘗試自行調試,但我的知識是有限的。所以,抱歉不要再發佈一個問題! :D – neimad 2012-08-03 19:16:19