私はGLSLに関するオンラインのチュートリアルをいくつか続けています。私は現在のプログラムにコードを実装しています。正常にコンパイルされますが、デバッグするとアクセス違反が発生します:OpenGL/glsl/sdlコードのC++アクセス違反
First-chance exception at 0x00000000 in Game Engine v0.2a.exe: 0xC0000005: Access violation.
Unhandled exception at 0x00000000 in Game Engine v0.2a.exe: 0xC0000005: Access violation.
私はなぜそれがわかりません。
GLuint v,f,f2,p,ge;
int gw = RESOLUTION_X;
int gh = RESOLUTION_Y;
void setShaders()
{
char *vs = NULL, *fs = NULL, *fs2 = NULL, *gs = NULL;
v = glCreateShader(GL_VERTEX_SHADER); //<-- this line
f = glCreateShader(GL_FRAGMENT_SHADER);
ge = glCreateShader(GL_GEOMETRY_SHADER_EXT);
...
追加のコードを入力する必要がありますか?私は何がここで間違って行われているのか分かりません。
+1;この仮説は、アドレス0x00を呼び出すときに例外がスローされるという事実によって補強される。おそらく 'glCreateShader'がNULLで初期化された関数へのポインタであるためです。 – xtofl
これは事実です。私はsdl initの前にglew initと呼んでいました。 – grep
私は自分の人生でSDLを使ったことが一度もありませんでした。試したことはありませんでしたが、前回と同様にSDL_InitになるたびにSDLのクラッシュについてたくさんの質問がありました。だから私たちは行く:) –