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

2021-07-01 23:42:20 字數 816 閱讀 4036

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

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

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...

方法的過載,動態引數列表

今天學習了方法的過載。方法的過載就是在方法名相同的情況下可以通過傳進不同的引數來利用方法執行不同的操作。方法的不同體現在,引數的資料型別,順序,個數。在沒有與傳遞引數型別一致的方法的時候!會自動找乙個引數型別可以進行轉化的進去 自動 比如在引數為int型別的方法,傳遞的是char型別的值,這個時候會...