我收到一些错误消息,在 VS 2012 中显示“错误:标识符 'XXXX' 超出范围”。
我发现即使是下面非常简单的类也会发生这种情况。
// this is header file
public class IRIS_Database
{
public:
int test1;
IRIS_Database::IRIS_Database(void);
IRIS_Database::~IRIS_Database(void);
};
// this is cpp file
#include "IRIS_Database.h"
/*******************
Constructor
********************/
IRIS_Database::IRIS_Database(void)
{
test1 = 5;
int test2 = 20;
}
/*****************
Destructor
******************/
IRIS_Database::~IRIS_Database(void)
{
}
我在构造函数中放置了断点,并在手表上添加了 test1 和 test2。这是屏幕截图。
如您所见,在头文件中声明的 test1 是“超出范围”。在构造函数中声明的局部变量 test2 是可以的。我可以跟踪 test2 但不能跟踪 test1。
这是从 main 函数启动此类的代码。
/*********************
Main Function
**********************/
int _tmain(int argc, _TCHAR* argv[])
{
// Initialize Database
IRIS_Database* IRDB = new IRIS_Database();
}
我不确定为什么...
优化在项目属性中被禁用,并且以调试模式运行。我的代码是混合了 Windows 表单的 C++/CLI。因此,启用了 /clr 选项。平台工具集是 v110,即 VS 2012。这是属性页面中的所有选项。如果您想查看特定选项,请告诉我。
/GS /analyze- /W3 /Zc:wchar_t /I"../IRDB_Include" /Zi /Od /sdl- /Fd"Debug\vc110.pdb" /fp:precise /D "_CRT_SECURE_NO_WARNINGS" /D "WIN32" / D "_DEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /errorReport:prompt /WX- /Zc:forScope /Oy- /clr /FU"C:\Program Files\Reference Assemblies\Microsoft\Framework .NETFramework\v4.0\mscorlib.dll" /FU"C:\Program Files\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.Data.dll" /FU"C:\Program Files\Reference Assemblies \Microsoft\Framework.NETFramework\v4.0\System.dll" /FU"C:\Program Files\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.Drawing.dll" /FU"C:\Program文件\参考程序集\Microsoft\Framework.NETFramework\v4.0\System.Windows.Forms.dll"/FU"C:\Program Files\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.Xml.dll" /MDd /Fa"Debug\" /EHa /nologo /Fo"Debug\" /Fp"Debug \近红外.pch"
提前致谢!