Programm startet nicht
-
Huhu,
Ich hab eine Art Programm Manager geschrieben. Diesen habe ich zusammen mit allen benötigten Daten auf eine Bootfähige CD gebrannt. Wenn ich das Programm nun starte passiert folgendes:Auf dem Entwicklungnsrechner (Win2k) startet das Programm nicht von CD sondern hängt sich auf und muß über den Task Manager abgebrochen werden.
Von Festplatte startet das Programm ohne Probleme.
Auf einem anderen Win2k Rechner habe ich genau das selbe Problem.
Auf einem Win98 Rechner startet das Programm allerdings ohne Problem von der CD!Ich frage mich nun ob ich irgendwas beachten muß wenn ich das Programm unter Win2k von CD starten will, da es ja unter Win98 ohne Problem geht.
Ich benutzte überings den BCB 5.
Ich bin für jede Hilfe dankbar!
-
Verlief der Brennvorgang erfolgreich? Prüfe am besten die CD auf lesefehler, indem du folgendes versuchst:
1. Möglichkeit:
Kopiere die EXE von der CD auf die Festplatte und starte die EXE.Wenn das nicht funktioniert, dann sind moglicherweise fehlerhafte Sektoren auf der CD mitten in der EXE vorhanden.
2.Möglichkeit: Prüfe die CD auf Lesefehler mit "Nero CD Speed" (verfügbar ab Nero 5.5.4.0) und lasse dir den Bericht anzeigen.
Ich hoffe, das hilft dir bei der Klärung der Ursache.
-
Nein, daran kann es nicht liegen. Ich habe es mit mehreren CDs (verschiedene Rohlinge, Brenngeschwindigkeit, etc.) versucht, und keine läuft unter Win2k, aber alle laufen unter Win98.
-
Kann es sein das der Win2000 Rechner ein SCSI CDRom hat ? Damit gibt es meist Probleme beim start von cd.
-
Ich hab den Fehler gefunden!
Die Daten für mein Programm lade ich aus einer Textdatei, die ja logischerweise auf CD schreibgeschützt ist. Aus Kompatibilitätsgründen mußte ich zum öffnen der Daeti fopen nutzen. Das Problem war nun, dass ich die Datei als "r+t" und nicht als "rt" geöffnet habe, also nicht nur zum lesen sondern auch zum schreiben. Win98 hat diesen Fehler im Gegensatz zu Win2k wohl ignoriert, deshalb lief es auch unter 98.
Danke dennoch für die Hilfeversuche!
-
Wie üblich, das Problem sitzt vor dem Bildschirm.
Da hat wohl der Programmierer vergessen, eine Abfrage einzubauen, ob die Datei erfolgreich geöffnet wurde ...
-
Naja nicht ganz Jansen..
Der Code sieht so aus:int ManagerEntrys::GetConfigEntry(char *cpSection, char *cpSearchCommand, void **pReturn, short nCommand) { FILE *fConfigFile; char cReadLine[256]; int iLine = 0; bool bSectionFound = false; fConfigFile=fopen("\\Manager.dat","rt"); if (fConfigFile == NULL) return RET_FILEERROR; // usw.
Du siehst, die Abfrage ist drin, sonst hätte ich ja nen Ausnahmfehler beim starten bekommen, da der Zeiger auf NULL gezeigt hat...allerdings habe ich vergessen den Rückgabewert abzufragen
-
Also doch, du hast vergessen, die entscheidende Abfrage einzubauen.
Ansonsten hättest du ja auch argumentieren können, dass fopen eine entsprechende Abfrage bereits eingebaut hat (Rückgabe NULL).