我有一個程序,我需要使用Format();函數將字符串文字和int整合到一個CString變量中。我試圖這樣做的幾種不同的方式,對他們的代碼是在這裏:在C++中轉換類型時出錯
// declare variables used
CString _CString;
int _int;
// try to use format function with string literal
_CString.Format("text",_int);
// try to use format function with C-Style cast
_CString.Format((wchar_t)"text",_int);
// try to use format function with static_cast
_CString.Format(static_cast<wchar_t>("text"),_int);
第一個返回錯誤C2664:「無效ATL :: CStringT ::格式(常量爲wchar_t *,...)」 :無法將參數1從'const char [33]'轉換爲'const wchar_t *'
對於第二個,沒有錯誤,但文本以中文字符顯示。
第三個返回錯誤C2440:'的static_cast:不能從 '爲const char [33]' 到 'wchar_t的'
任何想法轉換爲轉換CStrings到wchar_t的* S?
感謝
這是超級nitpicky,但從技術上講,你不應該命名變量名稱的下劃線後跟大寫字母。這些名稱由實現保留,無論他們感覺如何(包括任意性的惡意宏)。只是想我會提到這是一個供參考。 – templatetypedef 2011-01-06 06:32:22