在 Visual Studio 2005 Debug模式下,当我观察这种变量时:
vector<vector<_variant_>>
特定的内容,IDE会崩溃。 像这样:
#include <stdlib.h>
#include <vector>
#include <comutil.h>
#pragma comment(lib, "comsuppwd.lib")
using namespace std;
typedef vector<_variant_t> TABLE_ROW;
typedef vector<TABLE_ROW> MEMORY_TABLE;
int
main(int argc, char *argv[])
{
MEMORY_TABLE data;
TABLE_ROW row;
row.push_back(_variant_t("abcdefg"));
row.push_back(_variant_t("b"));
row.push_back(_variant_t("c"));
row.push_back(_variant_t("d"));
row.push_back(_variant_t(5.1));
row.push_back(_variant_t(6.2));
row.push_back(_variant_t(7.4));
row.push_back(_variant_t(8.5));
row.push_back(_variant_t(9.7));
row.push_back(_variant_t("1"));
row.push_back(_variant_t(0));
row.push_back(_variant_t(0));
row.push_back(_variant_t(1));
row.push_back(_variant_t("eeeeeee"));
data.push_back(row);
TABLE_ROW row2;
row2.push_back(_variant_t(5.1));
row2.push_back(_variant_t(6.2));
row2.push_back(_variant_t(7.4));
row2.push_back(_variant_t(8.5));
row2.push_back(_variant_t(9.7));
data.push_back(row2);
printf( "hello, bug\n");
system("pause");
return 0;
}
在
处添加断点printf( "hello, bug\n");
然后开始调试,当它在断点处中断时,然后观察变量
data
然后 IDE 将崩溃。 Visual studio 2010或更高版本工作正常。
我该如何解决这个问题?感谢您的帮助!
最佳答案
这可能是这个古老的 Visual Studio 中的一个错误。
新的编译器并不奢侈。 C++ 语言正在不断发展。现代 C++ 功能令人兴奋,可以使您的代码更加简洁和可靠。 Visual Studio 2005 不支持任何这些功能。
如果您的计算机速度不够快,无法运行 Visual Studio 2010(至少),我宁愿不使用 IDE 而是投资现代编译器。例如,MinGW 对 C++11 有很好的支持。
关于c++ - 观看变量时 Visual Studio 2005 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24665712/