Einzelnen Beitrag anzeigen

decrypted

Registriert seit: 6. Jun 2008
5 Beiträge
 
#6

Re: GetExitCodeProcess liefert falsche Werte unter 64BIT(vis

  Alt 7. Jun 2008, 11:28
Zitat von jbg:
Zitat von decrypted:
Wenn sie beide in einem 64Bit (Vista) Env laufen gibt es das problem.
Also ich habe gerade unter Vista 64 ein zwei kleine 32Bit Delphi Programme geschrieben. Das eine startet das andere, wartet bis es beendet ist und gibt dann die GetExitCodeProcess aus. Bei 200 kommt 200 zurück und bei 300 kommt 300 zurück. Hast du vielleicht eine Speicherüberschreibung irgendwo?
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 für den GetExitCodeProcess? DWORD? Es ist ja ein var daher ist den falsch zu typen auch eher schwierig ...

Gehe ich recht der annahme, das du das auch auf dem environment compiled hast? Sollte ja bei delphi eigenlich keine rolle spielen ...


BTW: ich teste das mit D2k7 December Update.

Werd ich wohl auch mal ein test app schreiben müssen ... nach dem GetExitCodeProcess wird nicht mehr viel mit dem Wert gemacht - nur als Result zugeweisen und dann in der funktion die aufruft ausgegeben und ausgewertet. Viel mit speicher überschreiben kann bis dahin ja nicht passieren. Zumal es ja ein fixsize type ist, so ein DWORD, und nicht irgendwelche buffer zu klein sein können.


Grüße
Daniel
  Mit Zitat antworten Zitat