[C++/OpenGL/VS2010]GLUT ntdll.dll crash

cwriter

Erfahrenes Mitglied
Hallo Welt

Ich habe vor einiger Zeit mit dem Basis-OGL angefangen und komme damit soweit auch ganz gut klar, allerdings wollte ich einen Schritt nach vorne machen und mit GLUT anfangen.
Lib, header und .dll geladen, per
Code:
#include "include\glut.h"
und
Code:
#pragma comment(lib, "lib/glut32.lib")
eingebunden (liegen im selben Verzeichnis wie auch die opengl.lib, sollte also eigentlich funktionieren).
Kompiliert wird ohne Fehler, jedoch mit der Warnung
Code:
LNK4098: Standardbibliothek "LIBCMTD" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden.
die allerdings schon vorher da war.
Beim Ausführen allerdings crasht die Anwendung, bevor sie überhaupt ein Fenster bildet:
Code:
Unbehandelte Ausnahme bei 0x77848dc9 (ntdll.dll) in Engine.exe: 0xC0000005: Zugriffsverletzung beim Schreiben an Position 0x00000014.
Die Aufrufliste verweist auf ntdll.dll!RtlIntegerToUnicodeString() (siehe Anhang) sowie auf einige opengl32.dll-Funktionen, die bisher nie Probleme gemacht haben.
Und ja, wahrscheinlich ist das Problem schnell gelöst, aber ich finde die Lösung nicht.

System:
Windows 7 Home Premium 64bit
ATI Radeon HD 4330
Intel Centrino

Liebe Grüsse
cwriter
 

Anhänge

  • Callstack.JPG
    Callstack.JPG
    48,9 KB · Aufrufe: 9
Wow, du bist ja schnell.
Der Code ist nicht schön, aber es wäre wohl recht undankbar, keinen zu zeigen. Der neu hinzugefügte Code sieht so aus:
C:
void MouseSelect(int button, int state, int x, int y)
{
	if(state != GLUT_DOWN) return;
	int window_width = glutGet(GLUT_WINDOW_WIDTH);
	int window_height = glutGet(GLUT_WINDOW_HEIGHT);
	GLbyte color[4];
	GLfloat depth;
	GLuint index;
 
	glReadPixels(x, window_height - y - 1, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, color);
	glReadPixels(x, window_height - y - 1, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &depth);
	glReadPixels(x, window_height - y - 1, 1, 1, GL_STENCIL_INDEX, GL_UNSIGNED_INT, &index);
	char tmp[512];
    //sprintf(tmp,"Clicked on pixel %d, %d, color %02hhx%02hhx%02hhx%02hhx, depth %f, stencil index %u\n", x, y, color[0], color[1], color[2], color[3], depth, index);
	printf(tmp);
}
//und vereinfacht
bool openGL_init::drawScene()
{
     glutMouseFunc(MouseSelect);
     return true;
}
 
Zurück