在visual studio 2005调试模式中,当我看到这种变量时:
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或更高版本工作正常。
我该如何解决?谢谢你的帮助!
答案 0 :(得分:0)
这可能是这个古老视觉工作室的一个错误。
新的编译器并不奢侈。 C ++语言正在发展。现代C ++功能令人兴奋,可以使您的代码更加简洁可靠。 Visual Studio 2005不支持任何这些功能。
如果您的计算机运行速度不够快(至少),我宁愿不使用IDE并投资现代编译器。例如,MinGW对C ++ 11有很好的支持。