Daraus habe ich die sachen für die VBO´s extrahiert und simpel in eine neue header datei gepackt. Mit extern die function pointer definiert und dann in einer c++ in einer initExtensions() funktion per wglgetprocaddress geholt.
Kling alles toll... es kompiliert auch... aber der linkt das ganze nicht. Im Projekt ist die opengl32.lib und glu32.lib drinne...
hab mir das Projekt gerade angeschaut. Der fehler liegt darin, dass du die externe Funktion glGenBuffers nirgends definierst. Ich hab die Datei "glextensions.cpp" so ver'ndert und er kompiliert dann sauber durch.
Sprich in einer header datei zu deklarieren reicht nicht aus in dem fall. Ich dachte immer das eine header datei am ende im compiler auch nur zur CPP datei hinzugefügt wird. Würde so im compiler aussehen:
Code:
typedef void (APIENTRY* PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers);
naja doppelt ist es nicht. Mit dem Schlüsselwort extern sagst du dem Compiler, dass die Variable iregndwo extern definiert wird. Diese Definition ist
Code:
PFNGLGENBUFFERSPROC glGenBuffers = NULL;
Da eine Definition nur einmal erfolgen darf, muss sie in einer cpp datei stehen und nicht im Header. Du kannst ja mal das extern weglassen dann wirst du eine Fehlermeldung bekommen, dass die Variable merfach definiert ist, da sie jedesmal, wenn der Header eingebunden wird definiert wird.
Mitglieder in diesem Forum: 0 Mitglieder und 10 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.