2016-07-21 12 views
0

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. 
+0

Visual Studioの素晴らしいデバッガを使用してクラッシュする理由を調べましたか? – immibis

+0

私は 'window'の前にすべてのコード行でデバッガを使うことができますが、宣言でcontinueを押すとすぐにクラッシュして例外を渡さないようにします。 – Marc

+0

しかし、そのコメントは私がVSのブレークポイントの感度を考えるようにしたので、すべてのブレークポイントを有効にしました。例外はメインのポストに編集されています。 – Marc

答えて

0

私は何が起こったのかの知識がない、またはそれを修正する方法が、私はあなたがコントロールしていない問題を解決することを保証された1つのことをしました。 Windowsを再インストールすると問題が解決しました。そのDLLで何かが悪いことがあって、その周りに道はありませんでした。

関連する問題