Visual c++ 空串之谜

Visual c++ 空串之谜,visual-c++,mfc,Visual C++,Mfc,我正在视图类中公开声明一个名为currentDocName的变量 CString currentDocName = (CString)"Emergence1"; 稍后在同一个类中,我调用了一个OutputDebugString,其输入为currentDocName。但是,它似乎是一个空字符串。这怎么可能?现在,我还要在哪里将currentDocName初始化为空字符串。这行代码声明了一个局部变量,而不是公共变量:当封闭函数返回时,它将被销毁。“以后在同一个类中”是指在其他类函数中吗?您没有给我

我正在视图类中公开声明一个名为currentDocName的变量

CString currentDocName = (CString)"Emergence1";

稍后在同一个类中,我调用了一个OutputDebugString,其输入为currentDocName。但是,它似乎是一个空字符串。这怎么可能?现在,我还要在哪里将currentDocName初始化为空字符串。

这行代码声明了一个局部变量,而不是公共变量:当封闭函数返回时,它将被销毁。“以后在同一个类中”是指在其他类函数中吗?

您没有给我们提供足够的信息。请将您的代码复制到一个新项目中,并删除除显示问题的最小数量之外的所有内容。仅此一点就可以帮助您发现错误。如果没有,请完整发布问题代码。看看为什么不这样初始化变量:
CString currentDocName=\u t(“Emergence1”),或者类似的:
CString currentDocName(_T(“Emergence1”)?为什么要用这种C型铸造来制作CString?请使用_T()宏轻松地将项目转换为/fro UNICODEi。我不知道它怎么可能是局部变量……我在includes语句之后直接将它放在任何函数之外。此外,我在头文件中将它定义为public…不过,为了回答您的问题,是的,我的意思是在其他一些类函数中。显示声明/定义/使用此变量的所有代码。