VS2013信息:
Microsoft Visual Studio Professional 2013 版本12.0.30723.00更新3 Microsoft .NET Framework 版本4.5.51209
所以这是正在发生的事情。前几天我安装了VS2013只是为了看看已经做了哪些改进,并对C ++环境的变化感到惊喜和满意。然而,一旦我开始编写代码并进行调试,我发现VS2013的监视窗口存在一个主要问题。
无论出于何种原因,几乎没有变量可以在任何选项卡的监视窗口中检查。大多数情况下,Autos选项卡为空,在Watch选项卡中,几乎任何我在其中拍摄的变量都被报告为超出了当前断点的范围。
例如,在它之前使用这个小的语句和几行:
cout << "Number of ship classes: " << sCTypes << endl << endl;
cout << sIDS.size() << endl;
for (i1 = 0; i1 < sIDS.size(); i1++)
{
cout << sClasses.at(i1) << " ID Range: Low: " << sIDS.at(i1).vRange.iLow << "| High: " << sIDS.at(i1).vRange.iHigh << endl;
}
断点位于for循环定义的开头,但是我的监视条目:
sIDS.size()
出现,因为标识符“sIDS”即使在多次尝试刷新监视窗口中的单元格后仍未定义。
到目前为止,监视窗口(任何选项卡)将处理的唯一内容是函数参数。任何类似于类或结构成员的东西,就好像它甚至不存在一样。
这似乎只影响了这个特定的项目。如果我开始一个新的事情,他们应该工作。代码来自VS2012,但我只是复制了headers / cpp文件并将它们作为现有文件添加到项目中,没有从2012项目转换到2013.
我会在整个项目中添加一个链接,以防有人想下载它并尝试解决这个问题:http://www.lmpgames.com/ov_0.6a_new.zip
以下是上述问题区域的完整代码以及从中调用特定函数的位置:
globalVars.cpp:
void printData()
{
//TODO: Raname variable labels to ini file keys instead
//Ship ID Ranges By Class
cout << "Format: Description: name of low entry from scSettings.ini: imported value |" << endl;
cout << "name of high entry from scSettings.ini: imported value" << endl << endl;
cout << "Number of ship classes: " << sCTypes << endl << endl;
//cout << ssIDS.size() << endl;
cout << "Starter Ship ID Range: Low: " << ssIDS.iLow << "| High: " << ssIDS.iHigh << endl;
system("Pause");
system("CLS");
cout << sIDS.size() << endl;
for (i1 = 0; i1 < sIDS.size(); i1++)
{
cout << sClasses.at(i1) << " ID Range: Low: " << sIDS.at(i1).vRange.iLow << "| High: " << sIDS.at(i1).vRange.iHigh << endl;
}
system("Pause");
system("CLS");
cout << "Class names imported:" << endl;
for (i1 = 0; i1 < sClasses.size(); i1++)
{
cout << sClasses.at(i1) << endl;
}
system("Pause");
system("CLS");
}
main.cpp中:
int main()
{
srand( time(0) );
int pChoice;
int gSRows;
int pID;
int sID;
char pCChoice;
bool gQuit;
bool gMMenu = true;
bool bErrors;
bool lStation;
bool locked = false; //Use this to lock the main menu from the player during certain events such as using a clone
string eResult; //Event result; used for any time a loop is done where multiple outcomes, more than two, can be achieved
//Get data from configuration file
gv::getCData();
gv::printData();
...
return 0;
}
答案 0 :(得分:0)
弄清楚我做错了什么。您必须在监视窗口中使用namepsace访问这些类型的变量,否则它无法找到符号。在sIDS.size()前添加gVars ::就可以了。