我来告诉你。 这是初学者使用 CString 时最常见的问题。有了 C++ 的帮助,很多问题你不需要深入的去考虑它,直接拿来用就行了,但是如果你不能深入了解它的运行机制,又会有很多问题让你迷惑,特别是有些看起来没有问题的代码,却偏偏不能正常工作。
比如,你会奇怪为什么不能写向下面这样的代码呢:
CString graycat = "Gray" + "Cat";
或者这样:
CString graycat("Gray" + "Cat");
事实上,编译器将抱怨上面的这些尝试。为什么呢?因为针对CString 和 LPCTSTR数据类型的各种各样的组合,“ +” 运算符 被定义成一个重载操作符。而不是两个 LPCTSTR 数据类型,它是底层数据类型。你不能对基本数据(如 int、char 或者 char*)类型重载 C++ 的运算符。你可以象下面这样做:
CString graycat = CString("Gray") + CString("Cat");
或者这样:
CString graycat = CString("Gray") + "Cat";
#include
#include
using namespace std;
void main(void)
{
string a="dj";
cout<}
我也刚遇到这个问题,之前好像可以的,郁闷,标注下,一会来看答案
问题就出在你工程里面没有引入正确的头文件。。。