Hi,
bei dem Programm handelt es sich um eine (geschätzte) 4-5 Jahre alte exe (kein SourceCode, Firma pleite, null Support daher, aber auch nichts besseres im Umlauf laut AG). Von daher lässt sich hier nicht am eigentlichen Übel doktern.
dann war deine Info, es handle sich "um ein C++-Programm", aber leider auch wertlos. Wenn du nur ein Executable hast, und keinen Quellcode, ist es schnurz, ob das seinerzeit in C, in BASIC, in Pascal oder meinetwegen in COBOL geschrieben wurde.
Es meldet ja auch einen Returncode 0 zurück, obwohl nicht wirklich fertig :-(
Das ist technisch gesehen ein Widerspruch. Wenn das Programm einen Return Code liefert, ist es definitiv beendet. Ich könnte mir höchstens vorstellen, dass Windows selbst hier durch seinen Cache die letzten Schreibvorgänge auf die neue Datei verzögert. Dann allerdings sollte ein konkurrierendes Öffnen zum Lesen wiederum möglich sein. Sehr merkwürzig ...
Von daher suche ich nach einem Workaround abzufragen ob die Datei noch im Zugriff ist oder eben nicht.
Die einzige Möglichkeit, die mir einfällt: Stur probieren, und wenn fopen() (oder CreateFile() in Windows) fehlschlägt, eine gewisse Zeit abwarten und dann erneut versuchen. Das natürlich mit einem Zähler oder einem Zeitlimit absichern, damit das Programm bei schwerwiegenden Fehlern nicht endlos hängt.
Oder wie wäre es mit einer Batchdatei als Krücke, die streng sequentiell erst das Konvertierungstool aufruft, dann den Viewer?
So long,
Martin
Letztlich basiert alles auf dem Feuer, dem Rad, der Eins und der Null.
(Gernot Back)
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(