我得到了一些錯誤信息說「錯誤:標識符‘我發現在2012年VS的Visual Studio 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,在構造函數中聲明的局部變量是OK的。我可以跟蹤test2,但不能測試1。
這裏是從main函數啓動這個類的代碼。
/*********************
Main Function
**********************/
int _tmain(int argc, _TCHAR* argv[])
{
// Initialize Database
IRIS_Database* IRDB = new IRIS_Database();
}
我不知道爲什麼...
優化是在項目屬性禁用,這是運行的調試模式。我的代碼是C++/CLI與Windows窗體混合使用。因此,/ clr選項已啓用。平臺工具集v112是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 Files \ Reference Assemblies \ 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 \ Nea rIR.pch「
在此先感謝!
http://connect.microsoft.com/VisualStudio/feedback/details/783004/children-cannot-be-evaluated-on-c-cli-after-vs2012-update-2 –
感謝Hans,我確實更新了將平臺工具集更改爲vs 2010,它工作。 – diehard98