MFC 錯誤 沒有與引數列表匹配的 過載函式

2021-07-25 13:33:24 字數 856 閱讀 1389

cstring str;

str.format("**** %d",count);//這句話報錯

m_static.setwindowtextw(str):

錯誤是: 2 intellisense: 沒有與引數列表匹配的 過載函式 "atl::cstringt::format [其中 basetype=wchar_t, stringtraits=strtraitmfc>]" 例項

引數型別為: (const char [8], int)

物件型別是: cstring g:\c++\static\static\staticdlg.cpp 99 5 static

解決方案:

str.format(_t("**** %d"),count);或str.format(l"**** %d",count);

解釋:注意字元(串)有兩種型別,char(*)和wchar_t(*)型,分別用於多位元組字元和unicode字元,兩種型別分別有一套對應的字串處理函式(包括c/c++標準庫,windowsapi,mfc等)。mfc的類和函式會根據工程設定(預設為wchar_t)自動匹配,因此這時format要求的字串引數為wchar_t*,所以要在字串前加上「l」表示是wchar_t型字串,或者加上_t(),_t同樣會根據工程設定自動匹配char或wchar_t。

下面一句也建議寫成m_static.setwindowtext(str):(去掉w),setwindowtext其實也有兩個函式setwindowtexta(用於char)和setwindowtextw(用於wchar_t),而setwindowtext本身會根據工程設定自動匹配使用a或w

錯誤 沒有與引數列表匹配的 過載函式

cstring str str.format d count 這句話報錯 m static.setwindowtextw str 錯誤是 2 intellisense 沒有與引數列表匹配的 過載函式 atl cstringt format 其中 basetype wchar t,stringtrai...

解決沒有與引數列表匹配的建構函式

我們在乙個類中寫了乙個建構函式,寫完之後建立乙個物件的時候會發現報錯!class sonson int age,char name son void print friend ostream operator ostream out,const son other private int age c...

函式的引數列表

今日內容 1.函式的引數 2.函式物件 函式名 重點!3.函式 的巢狀呼叫 1.形參與實參 函式介紹 1.1 函式為什麼要有引數 因為內部的函式體需要外部的資料 1.2 怎麼定義函式的引數,在定義函式階段,函式名後面 中來定義函式的引數 1.3 怎麼使用函式的引數,在函式體中用定義的引數名直接使用 ...