Ich weiß nicht warum, aber bei mir haut die Read-anweisung eines tbVFile nicht hin (zumindest in meinem Projekt).
Hier das Problem:
Ist an dem Code was falsch?
tbResult CMD3Model::Init(tbVFile* pVFile)
{
// Parameter prüfen
if(pVFile == NULL) TB_ERROR_NULL_POINTER("pVFile", TB_ERROR);
// HIER MUSS WAS FALSCH LAUFEN
if(pVFile->Read(1, &pModel->id[0])) TB_ERROR("Fehler beim lesen aus der Datei!",TB_ERROR);
return TB_OK;
}
tbResult CMD3Model::Init(char* pcFilename)
{
tbVFile* pVFile;
// Parameter prüfen
if(pcFilename == NULL) TB_ERROR_NULL_POINTER("pcFilename", TB_ERROR);
// Virtuelle Datei erzeugen
pVFile = new tbVFile;
if(pVFile->Init(pcFilename)) TB_ERROR("Es konnte keine virtuelle Datei erzeugt werden!", TB_ERROR);
// Die Funktion zum Laden von MD3-Dateien aus virtuellen Dateien aufrufen
if(Init(pVFile))
{
delete pVFile;
return TB_ERROR;
}
delete pVFile;
return TB_OK;
}
Aufgerufen wird das ganze mit
if(m_MD3Model->Init("models\\boxes.md3")) return TB_ERROR;
Der Fehler wird durch die ->Read Anweisung hervorgerufen, das hab ich durch herauslöschen dieser festgestellt.
Ausserdem müsste die Init des tbVFiles noch funktionieren, sonst würde das Programm ja da schon abbrechen und einen TB_ERROR melden.
Folgender Fehler wird angezeigt:
Die Anweisung in "0x00403643" verweist auf Speicher in "0x00000000". Der Vorgang
"read" konnte nicht auf dem Speicher durchgeführt werden.
Was mach ich falsch?