Visual Studioの外部で正常にコンパイルされて実行される次のコードに問題があります。Visual StudioとSDL2ウィンドウの作成に失敗しました
#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;
}
この問題は、はるかに大きなプログラムから発生しますが、この単純な例ではまったく同じ問題です。プログラムがWindowsの応答を停止し、クラッシュすると、window
という宣言が実行されるまで、プログラムはうまく動作します。以前のSDLプロジェクトはすべてVisual Studio内で実行できなくなりましたが、IDEの外では正常に動作します。
Visual Studio 2015 Update 2ですべてのユーザー設定を再インストールしてリセットしました。自分でコンパイルしたSDL 2.0.4の最新のライブラリファイルを使用しています。私は、x86のデバッグのための構成を構築しています。
EDIT:私はVSでのデバッガの感度をuped、およびウィンドウを作成するときに、私はこの例外を得た、
Execption thrown at 0x101EB0B9 (swwxijqt.dll) in SDL_Text.exe: 0xC0000096:
Privileged instruction.
Visual Studioの素晴らしいデバッガを使用してクラッシュする理由を調べましたか? – immibis
私は 'window'の前にすべてのコード行でデバッガを使うことができますが、宣言でcontinueを押すとすぐにクラッシュして例外を渡さないようにします。 – Marc
しかし、そのコメントは私がVSのブレークポイントの感度を考えるようにしたので、すべてのブレークポイントを有効にしました。例外はメインのポストに編集されています。 – Marc