Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
程序在未连接调试程序的情况下运行时中断 我正在研究一个2D引擎,它是用C++编写的,我在Windows 7的64位上使用微软Visual Studio 2010。_C++_Visual Studio_Debugging_Opengl - Fatal编程技术网

程序在未连接调试程序的情况下运行时中断 我正在研究一个2D引擎,它是用C++编写的,我在Windows 7的64位上使用微软Visual Studio 2010。

程序在未连接调试程序的情况下运行时中断 我正在研究一个2D引擎,它是用C++编写的,我在Windows 7的64位上使用微软Visual Studio 2010。,c++,visual-studio,debugging,opengl,C++,Visual Studio,Debugging,Opengl,我使用OpenGL进行硬件加速,现在正在尝试使用帧缓冲区将纹理用作画布。(用于允许用户在屏幕上绘制等) 现在这个帧缓冲区工作正常,只要我在启动程序时附加了调试器(F5) 如果我从IDE外部启动程序,或者在没有调试器(CTRL+F5)的情况下启动程序,我无法绘制纹理,但每帧都会出现闪烁和OpenGL堆栈下溢错误 我真的不知道从哪里开始寻找这个问题,你能帮我吗 我不能确定,但这可能是以下几件事之一: 调试器(有时)初始化为0的未初始化变量 比赛条件没有显示,因为时间现在完全不同了 我不能确定,但

我使用OpenGL进行硬件加速,现在正在尝试使用帧缓冲区将纹理用作画布。(用于允许用户在屏幕上绘制等)

现在这个帧缓冲区工作正常,只要我在启动程序时附加了调试器(F5)

如果我从IDE外部启动程序,或者在没有调试器(CTRL+F5)的情况下启动程序,我无法绘制纹理,但每帧都会出现闪烁和OpenGL堆栈下溢错误

  • 我真的不知道从哪里开始寻找这个问题,你能帮我吗

    • 我不能确定,但这可能是以下几件事之一:

      • 调试器(有时)初始化为0的未初始化变量
      • 比赛条件没有显示,因为时间现在完全不同了

        • 我不能确定,但这可能是以下几件事之一:

          • 调试器(有时)初始化为0的未初始化变量
          • 比赛条件没有显示,因为时间现在完全不同了

          您的程序是否具有多线程功能?首先检查是否所有.dll都与.exe位于同一文件夹中。。如果是这样,请尝试在项目属性(alt+F7)配置属性->c/c++->代码生成中进行更改,并在右菜单中将运行时库更改为/MTD以使程序多线程化?首先检查是否所有.dll都与.exe位于同一文件夹中。。如果是这样,请尝试在项目属性(alt+F7)配置属性->c/c++->code generation中更改,并在右菜单中将未初始化变量的运行时库更改为/MTd+1,特别是对于堆分配的变量。从调试器启动时,您将获得Windows调试堆,该堆使用特定模式预先填充堆分配的内存,而在“正常”启动时,您将获得包含其中任何内容的页面(通常在程序启动时为零)。查看发生了什么的一个可行技巧是在程序启动后附加调试器。对于未初始化的变量,特别是对于堆分配的变量,+1。从调试器启动时,您将获得Windows调试堆,该堆使用特定模式预先填充堆分配的内存,而在“正常”启动时,您将获得包含其中任何内容的页面(通常在程序启动时为零)。查看发生了什么的一个可行技巧是在程序启动后附加调试器。