Was bedeutet dieser Fehler?
-
Unbehandelte Ausnahme in Tischtennis.exe (Tribased.dll): 0xC0000005 Acces Violation
Entstand beim Zurückkehren von WinMain, Fehler entsteht bei Zeile:
return 0;
Woran kann das liegen, und was besagt der Fehler eigentlich genau?
hier der code, es ist noch nicht so veil, daher zeige ich fast alles :-)...
// Datei WinMain.cpp #include "Tribase.h" #include "Tischtennis.h" #include "Allgemeines.h" tbDirect3D* g_pDirect3D; // globales 3d-Objekt tbTextureManager* g_pTextures; // globales Texturmanagerobjekt int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { CTischtennis App; if(App.Init() == 2) MessageBox(NULL, "Vollständig initialisiert!", "OK!", MB_OK); else MessageBox(NULL, "Fehler", "Fehler", MB_OK); App.Unload(); return 0; // hier entsthet der Fehler: } // Datei Tischtennis.cpp #include "Tribase.h" #include "Tischtennis.h" #include "Allgemeines.h" extern tbDirect3D* g_pDirect3D; extern tbTextureManager* g_pTextures; CTischtennis::CTischtennis() { m_fTime = 0; } CTischtennis::~CTischtennis() { Unload(); } int CTischtennis::Init() { tbInit(); // Tribase initialisieren int Result; if(Result = tbDoConfigDialog(&this->m_Config)) { if(Result == TB_CANCELED) return 0; else { // Feher im Config-Dialog MessageBox(NULL, "Fehler im Konfigurationsdialog", "Fehler!", MB_OK); return 1; } } g_pDirect3D = new tbDirect3D; if(g_pDirect3D->Init(&m_Config, "Tischtennis Version 0.1", NULL, NULL)) { // Fehelr beim Initailisieren... MessageBox(NULL, "Fehler biem g_pDiredt3D->Init", "Fehler", MB_OK); Unload(); TB_ERROR("Fehler bim Initatialisieren von tbDirect3D", 1); } g_pTextures = new tbTextureManager; if(g_pTextures->Init(16)) { MessageBox(NULL, "Fehler beim Texturmanager initialisieren...", "Fehler", MB_OK); Unload(); TB_ERROR("Fehelr TExturenmanager...", 1); } return 2; } tbResult CTischtennis::Unload() { g_pDirect3D->Exit(); // tbD3D löschen TB_SAFE_DELETE(g_pDirect3D); g_pTextures->Exit(); // texturen löschen TB_SAFE_DELETE(g_pTextures); return TB_OK; }
Ich arbeite mit der Tribase-Engine aus David Scherfgens Buch, definiert in Tribased.dll
und TB_OK hat den Wert 0.Was ist da jetzt falsch dran?
Gruß, Maxi
[ Dieser Beitrag wurde am 14.06.2003 um 17:24 Uhr von Maxi editiert. ]
-
Für solche Fragen habe ich doch extra ein Forum auf meiner Seite eingerichtet...
Tipp: tbDirect3D und tbTextureManager sind statische Klassen, also brauchst Du davon keine Instanz anzulegen.tbDirect3D::Init reicht also, ebenso wie tbTextureManager::Init. Und löschen musst Du sie am Ende auch nicht.