在進行選單命令響應函式的實際練習的時候,在新增
messagebox("mainframe clicked");
到onprocess函式中時,出現了錯誤:
error:argument of type "const char" is incompatible with parameter of type "lpctstr".
解決方法:
將命令改為:messagebox(_t("mainframe clicked"));
原因:問題是:無法將const char*轉換成lpctstr
因為程式是在unicode 條件下執行的,當我呼叫messagebox的時候,實際上呼叫的是messageboxw;
而 char 的unicode版被定義成這樣:typedef unsigned short wchar_t ;佔2個位元組。
所以有字元做引數的函式相應也用兩個版本了。
VC 深入詳解 學習筆記
一 1 使用定義二進位制的值來定義相關的意義 如dword w cs hredraw cs vredraw 這樣就可以通過 或 運算來組合,同時要是不需要某個屬性可以通過 取反結合 與 運算來實現dword w cs hredraw cs vredraw dword h w cs verdraw 2...
VC 深入詳解筆記 引用
int a 5 int b a 用 表示申明乙個引用。引用必須在申明時進行初始化考慮下面 int a 5 int b a int c 3 b c 此處並不是將b變成c的引用,而是給b賦值,此時b和a的值都變成了3 引用只是乙個別名,是乙個變數或物件的替換名稱。引用的位址沒有任何意義,是所引用的變數或...
《VC 深入詳解》筆記(一)
1,sendmessage 將訊息直接傳送給視窗,並呼叫視窗的視窗過程進行處理。等訊息處理完後,函式才返回 它傳送的訊息為不進隊訊息 postmessage 則是將訊息方到訊息佇列中就 返回了。postthreadmessage 函式用於給執行緒傳送訊息。2 下面這段 會出問題,當關閉程式後,會出現...