我有一个程序,我需要使用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