【发布时间】:2016-07-21 00:37:38
【问题描述】:
以下代码存在我的问题,它在 Visual Studio 之外编译和运行良好;
#include "SDL.h"
#include <stdio.h>
int main(int argc, char* argv[]) {
if(SDL_Init(SDL_INIT_VIDEO) != 0)
printf("%s", SDL_GetError());
SDL_Window* window = SDL_CreateWindow("Test", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_SHOWN);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
这个问题来自一个更大的程序,但与这个简单的例子完全相同。该程序运行良好,直到声明window,当程序停止响应窗口并崩溃时。我以前的所有 SDL 项目都无法在 Visual Studio 中运行,但在 IDE 之外仍然可以正常运行。
我刚刚重新安装并重置了 Visual Studio 2015 Update 2 上的所有用户设置。我正在使用我自己编译的最新 SDL 2.0.4 库文件。我正在为 Debug x86 构建配置。
编辑:我在VS中提高了调试器的灵敏度,在创建窗口时出现了这个异常,
Execption thrown at 0x101EB0B9 (swwxijqt.dll) in SDL_Text.exe: 0xC0000096:
Privileged instruction.
【问题讨论】:
-
您是否尝试过使用 Visual Studio 出色的调试器来找出崩溃的原因?
-
我可以在
window之前的每一行代码上使用调试器,但只要我点击继续声明,它就会崩溃并且不会传递任何异常。 -
但是那个评论让我想到了VS中断点的敏感性,所以我启用了所有的断点,我得到的例外被编辑到主帖中。
标签: c++ visual-studio-2015 sdl