在學習windows開發期間,遇到的問題。
寫了乙個gui專案,執行之後,沒有反應。除錯後發現,createwindow函式返回null。大概的**如下:
#include "main.h"
#include#includechar szfilepath[max_path] = ;
char szresult[4096];
cqueuequeue;
tchar* szmutex = _t("__mutex__l32__");
int winapi _twinmain(hinstance hthis, hinstance hprev, lptstr szcommandline, int icmdshow)
initcommoncontrols();
hwnd hwnd = createwindow(szwindowclass, _t("concurrent operation"),
null, null, wndex.hinstance, null);
if (!hwnd)
showwindow(hwnd, sw_show);
handle hmutex = createmutex(null, false, szmutex);
msg msg;
while (getmessage(&msg, 0, 0, 0))
closehandle(hmutex);
unregisterclass(wndex.lpszclassname, wndex.hinstance);
return (int)msg.wparam;
}
經過查詢網路,終於發現 問題在於
wndex.lpszclassname = _t("__concurrent_operation__");
和 中的第乙個引數不一致。雖然都是同乙個字串,但這樣也不行。
後來改為 wndex.lpszclassname = szwindowclass; 順利通過
導致CreateWindow建立視窗失敗的一種原因
createwindow返回null,getlasterror 返回0 經過網上蒐集資料和單步除錯發現問題 在程式呼叫createwindow函式之前會首先呼叫wndproc具體原因暫時不詳,我的程式這裡好像是會呼叫三次wndproc,可能是系統傳送的訊息 然後會呼叫createwindow,所以當...
CreateWindow建立子視窗失敗
在學習 windows程式設計 過程中,經常會遇到問題,每次懷疑書上寫的有問題,當然,每次都會證明是自己的問題,下面是一次建立視窗失敗的問題查詢。之前是一直在模板上改需要自定義的部分引數,但是當自己手動建立的時候,問題總是一堆一堆的 1 沒有註冊類就直接建立,createwindow會返回空值 2 ...
CreateWindow 建立普通的視窗
1 函式原型 1 hwnd createwindow 2 lpctstr lpclassname,pointer to register class name 3 lpctstr lpwindowname,pointer to window name 4 dword dwstyle,window s...