bierkistenschlepper
Goto Top

Access Violation OpenGl, VisualStudio 2008

Ich arbeite mich gerade mit der OpenGL SuperBible in die Grfikprogrammierung ein. Leider habe ich schon in Kapitel 2 ein Problem. Ich habe alles exakt genauso gemacht wie im Buch beschrieben und den Code habe ich auch direkt von der Homepage genommen und nicht etwa selbst getippt. Wenn ich das Projekt ausführen will, wirft VS eine nette Fehlermeldung:

Unhandled Exception at 0x00000000 in Triangle.exe: 0xC0000005: Access violation

Hat irgendjemand eine Ahnung, woher das kommt? Ich bin am Verzweifeln, denn ich muss einen Großteil dieses Buhs bis Semesterbeginn durchgearbeitet haben...

Ausführen tue ich Visual Studio 2008 auf meinem Mac in einer VM mit VirtualBox und Windows 7.

Hier mal der Code, wie gesagt ohne jede Änderung meinerseits. Es treten keine Fehler auf, der Code wird ja ausgeführt. Dann erscheint eine Konsole und dann ein zweiter Fensterrahmen, der aber leer bleibt.


Triangle.cpp
Our first OpenGL program that will just draw a triangle on the screen.

#include <GLTools.h> OpenGL toolkit
#include <GLShaderManager.h>
Shader Manager Class

#ifdef __APPLE__
#include <glut/glut.h> OS X version of GLUT
#else
#define FREEGLUT_STATIC
#include <GL/glut.h>
Windows FreeGlut equivalent
#endif

GLBatch triangleBatch;
GLShaderManager shaderManager;

/
Window has changed size, or has just been created. In either case, we need
to use the window dimensions to set the viewport and the projection matrix.
void ChangeSize(int w, int h)
{
glViewport(0, 0, w, h);
}


/
This function does any needed initialization on the rendering context.
This is the first opportunity to do any OpenGL related tasks.
void SetupRC()
{
Blue background
glClearColor(0.0f, 0.0f, 1.0f, 1.0f );

shaderManager.InitializeStockShaders();

Load up a triangle
GLfloat vVerts = { -0.5f, 0.0f, 0.0f,
0.5f, 0.0f, 0.0f,
0.0f, 0.5f, 0.0f };

triangleBatch.Begin(GL_TRIANGLES, 3);
triangleBatch.CopyVertexData3f(vVerts);
triangleBatch.End();
}


/
Called to draw scene
void RenderScene(void)
{
Clear the window with current clearing color
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);

GLfloat vRed = { 1.0f, 0.0f, 0.0f, 1.0f };
shaderManager.UseStockShader(GLT_SHADER_IDENTITY, vRed);
triangleBatch.Draw();

Perform the buffer swap to display back buffer
glutSwapBuffers();
}


/
Main entry point for GLUT based programs
int main(int argc, char* argv)
{
gltSetWorkingDirectory(argv);

glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH | GLUT_STENCIL);
glutInitWindowSize(800, 600);
glutCreateWindow("Triangle");
glutReshapeFunc(ChangeSize);
glutDisplayFunc(RenderScene);

GLenum err = glewInit();
if (GLEW_OK != err) {
fprintf(stderr, "GLEW Error: %s\n", glewGetErrorString(err));
return 1;
}

SetupRC();

glutMainLoop();
return 0;
}

Content-ID: 174405

Url: https://administrator.de/contentid/174405

Ausgedruckt am: 23.11.2024 um 12:11 Uhr

Bierkistenschlepper
Bierkistenschlepper 10.10.2011 um 17:45:16 Uhr
Goto Top
Hier noch das Log unten. Kann mir jemand sagen, wieso das Ding versucht auf die cryptbase.dll zuzugreifen? Ich habe Visual Studio per Torrent gesaugt, hoffe ich habe mir da nix eingefangen...

'Triangle.exe': Loaded 'C:\Users\Cornelius\Documents\Visual Studio 2008\Projects\Triangle\Debug\Triangle.exe', Symbols loaded.
'Triangle.exe': Loaded 'C:\Windows\System32\ntdll.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\kernel32.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\KernelBase.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\opengl32.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\msvcrt.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\advapi32.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\sechost.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\rpcrt4.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\gdi32.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\user32.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\lpk.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\usp10.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\glu32.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\ddraw.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\dciman32.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\setupapi.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\cfgmgr32.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\oleaut32.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\ole32.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\devobj.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\dwmapi.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\winmm.dll'
'Triangle.exe': Loaded 'C:\Windows\winsxs\x86_microsoft.vc90.debugcrt_1fc8b3b9a1e18e3b_9.0.21022.8_none_96748342450f6aa2\msvcr90d.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\imm32.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\msctf.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\uxtheme.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\VBoxOGL.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\VBoxOGLcrutil.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\ws2_32.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\nsi.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\nlaapi.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\NapiNSP.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\pnrpnsp.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\mswsock.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\dnsapi.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\winrnr.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\VBoxOGLpackspu.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\VBoxOGLerrorspu.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\VBoxOGLfeedbackspu.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\VBoxOGLpassthroughspu.dll'
'Triangle.exe': Loaded 'C:\Windows\System32\cryptbase.dll'
First-chance exception at 0x00000000 in Triangle.exe: 0xC0000005: Access violation.
Unhandled exception at 0x00000000 in Triangle.exe: 0xC0000005: Access violation.
The program '[1388] Triangle.exe: Native' has exited with code -1073741819 (0xc0000005).
mrtux
mrtux 10.10.2011 um 23:45:49 Uhr
Goto Top
Hi !

Dir ist aber schon klar, dass die 3D Beschleunigung der Treiber (in den Guest Additions) von Virtualbox noch den Status "unstable" oder "beta" tragen...Warum eigentlich per Torrent gesaugt? Reicht zu Lernzwecken nicht auch die Express Edition? Soweit ich mich da grad noch erinnern kann, bekommt man die doch vom Hersteller kostenlos....

mrtux
Bierkistenschlepper
Bierkistenschlepper 11.10.2011 um 10:58:52 Uhr
Goto Top
Ja! nur ist das ja eigneltich keine 3D-Grafik sondern nur 2D bisher... Aber ich vermute auch, dass das an der VirtualBox liegt! Per Torrent habe ich das gesaugt weils schneller ging. Hab allerdings jetzt nochmal von MS geladen.