Wenn datei fehlt, kein programmstart

M.E.

Lt. Commander
Registriert
Jan. 2007
Beiträge
1.923
Hallo,

Ich programmiere ein Spiel in c++. Um zu verhindern, dass es Bugs etc gibt, wenn z.b. Texturen gelöscht wurden, möchte ich eine .exe dazwischenschalten die prüft, ob alle daten da sind. Ich habe mal aus einem Bitmaploader das rausgefriemelt: (kommentar lesen)
Code:
          hBitMap = (HBITMAP)LoadImage(0,"Misc/Menu.bmp",IMAGE_BITMAP, 0, 0, 
                 LR_DEFAULTSIZE|LR_LOADFROMFILE|LR_CREATEDIBSECTION);  //gibt es ne art datei-loader?
      
          if(hBitMap==NULL) // was kommt hier statt hbitmap?
          { 
            MessageBox(hwnd,"Datei nicht vorhanden: \nMisc/Menu.bmp \nNeuinstallation könnte das Problem beheben.","Schwerer Ausnahmefehler",0); 
          return -1; 
          }

Ich möchte aber nicht nur Bitmaps überprüfen, sondern alle Dateien.
wie ist das zu realisieren?

MfG

M.E.
 
erstell dir am besten eine liste (sieht man z.b. an ea games wie nfs gut, da gibts im root verzeichnis des spiels eine liste mit installierten dateien), geh alle dateien durch und wenn eine fehlt, gib nen fehler mit anschließendem ende aus. das verlagerst du dann zum start des programms und kannst dir gewiss sein dass es funktioniert ;)
 
Also normal ist es so, dass jedes Modul, welches auf Dateien zugreift, auch selbst feststellt, ob die Datei vorhanden ist. Wenn die Datei fehlt (oder nicht geladen werden kann, z.B. aufgrund Versionsunterschiede), dann muss das Modul eben einen Fehler generieren (bei C++ z.B. Exceptions oder einfache Funktionsrückgaben) und die Anwendung, die z.B. die Textur laden wollte, diesen Fehler verarbeiten (Fehlermeldung ausgeben und Programm beenden, Fehler ignorieren, usw.)
 

Ähnliche Themen

Zurück
Oben