Forum: Win32/Win64 API (native code)
Delphi
by decrypted,
10. Jun 2008
Hi,
ok es hat sich geklärt. Kurz:
GetExitCodeProcess liefert *KEINE* falsche Werte unter 64BIT - es verhält sich nur leicht anders.
-
Am Ende lag es trotz allem an dem tool was den ExitCode setzt. Obwohl in beiden environments auf der console mit %EXITLEVEL% richtig zu sehen lag es am setzen des ExitCode. Nachdem ich diesen jetzt erst im letzten finally setzte kommt er sauber an.
Forum: Win32/Win64 API (native code)
Delphi
by decrypted,
7. Jun 2008
Hmm eine die nur bei 64Bit greift hmmmmmmm .... segfault gibt es bei beiden programmen nicht.
Ich hatte auch schon mal daran gedacht, zu testen was passiert wenn ich einfach direkt ExitProcess(300); aufrufe - wobei die shell ja immer den richtigen Wert sieht. Daher denke ich das es eher an dem programm liegt das GetExitCodeProcess called.
Was für einen Typen benutzt du nach dem Createprocess...
Forum: Win32/Win64 API (native code)
Delphi
by decrypted,
7. Jun 2008
Hi, danke für dein Interesse :)
alles 32Bit programme - selfmade.
Einmal laufen beide in einem 32Bit Env - alles super.
Wenn sie beide in einem 64Bit (Vista) Env laufen gibt es das problem.
Das Programm, was den ExitCode setzt, gibt in cmd.exe, in beiden umgebungen, den exitcode so zurück, das %ERRORLEVEL% den richtigen Wert hat.
Daniel
Forum: Win32/Win64 API (native code)
Delphi
by decrypted,
6. Jun 2008
es wird immer interessanter ... es ist scheinbar auch kein normaler overflow ... denn 200 => 5482396 und 300 => 5482396
aber das ist nicht 1000% confirmed
Forum: Win32/Win64 API (native code)
Delphi
by decrypted,
6. Jun 2008
Hallo,
ich versuche es kurz zu machen. Wenn Nachfragen - GERNE!
Ich habe eine app, die 200 bzw 300 als EXITCODE setzt. Ausführen in cmd und echo %ERRORLEVEL% gibt sowohl bei 64 und 32Bit environment die richtigen werte zurück also 200 oder 300 :)
Nun habe ich eine delphi app die GetExitCodeProcess called. Bei 32Bit systemen kommt auch super 200 oder 300 als result von GetExitCodeProcess...