CreateWindow函式返回NULL

2021-08-07 15:20:01 字數 1012 閱讀 1490

在學習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...