C++ 如何将CString变量放入消息框中?
在我的程序中,我需要在MessageBox中放入一个CString变量。我使用以下代码:C++ 如何将CString变量放入消息框中?,c++,visual-c++,mfc,C++,Visual C++,Mfc,在我的程序中,我需要在MessageBox中放入一个CString变量。我使用以下代码: messagebox("hi" + txt); 但我收到以下错误消息: 错误C2678:二进制“+”:未找到接受 “const char[3]”类型的左侧操作数(或没有可接受的 转换) 使用CString的格式化方法。Format方法的作用类似于printf、sprintf的工作方式 范例 CString str ; str.Format("Hi %s", txt); 您可以使用CString变量进
messagebox("hi" + txt);
但我收到以下错误消息:
错误C2678:二进制“+”:未找到接受
“const char[3]”类型的左侧操作数(或没有可接受的
转换)
使用CString的格式化方法。Format方法的作用类似于printf、sprintf的工作方式 范例
CString str ;
str.Format("Hi %s", txt);
您可以使用CString变量进行格式化,然后将其传递到
MessageBox
_T()是Unicode或MBCS的宏。
您应该确保
txt
与str
的编码相同
CString-strstr.Format(_T(“Hi%s”),txt) 使用将字符串文字包装成
CString
:
messagebox(_T("hi") + txt);
不,这不是不工作,错误信息很清楚问题是什么。你读了吗?您尝试了什么?我需要一个代码,在消息框中放入CString变量
txt
的类型是什么?如果它是CString
并且您的项目是unicode项目,那么您可能必须编写messagebox(L“hi”+txt)代码>错误1错误C2664:“void ATL::CStringT::Format(const wchar\u t*,…)”:无法将参数1从“const char[6]”转换为“const wchar\u t*”e:\project\visual studio 2008\projects\test2\test2dlg.cpp 174 test2不需要,可以使用二进制+
运算符连接两个CString值。你不需要格式化,除非你真的在做一些复杂的格式化。不过,无论哪种方式,您都需要使用宽字符串文本。在它们前面加上L
。请把你的代码放在@CodyGrayCody上。格雷说你可以把binary+和CString一起使用。这就是CString str=\u T(“Hi”)+txt@科迪·格雷:我什么时候应该使用L或_T?前缀为L
会使它成为一个宽字符串。使用\u T
宏在编译时根据一些预处理器定义确定文本是宽字符串还是窄字符串。任何一个都可以,但是现在都是Unicode,所以\T
有点毫无意义。没有人交叉编译ANSI或MBCS。