【发布时间】:2013-12-12 20:18:30
【问题描述】:
所以我正在为大学课程开发一个图形程序。老师有代码,但她是EXE。 该代码有效。如果我在 Visual Studio 中并开始调试代码,它工作正常。该程序通过 std::cout 将指令打印到控制台,然后出现 opengl 窗口,一切正常。 但是,如果我在不调试的情况下按 ctrl+f5 运行,则会打印出指令并出现窗口,但窗口的内容只是纯白色。大约一分钟后,程序崩溃并从窗口弹出一个窗口,说对不起程序崩溃或类似的东西。
如果我进入项目文件夹并进入调试文件夹并单击 .exe,指令会再次打印出来,然后弹出“调试断言失败”,并将其归咎于向量索引超出范围。这将使得除了为什么当我通过 Visual Studio 在调试模式下运行程序时不会发生这种情况?
如果我在 Visual Studio 中并将配置从调试更改为发布,则再次打印说明,这一次弹出显示内存分配错误。它指向这行代码:
Model* mutiplyMatrix(Model model,CMatrix matrix)
{
Model* m=new Model();
for(unsigned int i=0;i<model.vectorList.size();i++)
{
CVector* v=new CVector();
v->m=matrix*(*(model.vectorList.at(i)->m));
v->drawBit=model.vectorList.at(i)->drawBit;
m->addVectorToList(v);
}
return m;
}
确切的行是
CVector* v=new CVector();
所以我的问题是如何获得一个我可以给我的老师的 exe。我可以包含所需的库等。问题是该程序有效,但只有当我在调试模式下从 Visual Studio 执行它时。在发布模式下使用或未经调试时,程序会崩溃。
这是视觉工作室 2010。
【问题讨论】:
标签: c++ visual-studio-2010 visual-studio visual-studio-debugging