VC 深入詳解學習日誌 轉換問題 P165

2021-06-29 09:23:29 字數 458 閱讀 9203

在進行選單命令響應函式的實際練習的時候,在新增

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 下面這段 會出問題,當關閉程式後,會出現...