Einzelnen Beitrag anzeigen

Benutzerbild von Motzi
Motzi

Registriert seit: 6. Aug 2002
Ort: Wien
598 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Delphi-Bug bei stdcall-Convention?

  Alt 18. Apr 2007, 13:35
Nein, am WideString kann es nicht liegen. WideStrings entsprechen dem BSTR Datentyp von COM (der Speicher dafür wird auch über SysAllocString reserviert und nicht über den Delphi-internen MemoryManager) und können problemlos vom Marshaler verarbeitet werden. Wenn ich den Rückgabewert der Funktion von WideString auf PWideChar ändere funktioniert es. Das Problem liegt anscheinend wirklich daran, dass Delphi bei unterschiedlichen Typen die Parameter in unterschiedlicher Reihenfolge auf den Stack legt - und das bei gleicher Aufrufkonvention.

Das ist meiner Meinung nach ein Bug! Das Problem tritt übrigens unter Delphi 2006 Prof auf. Ich werd mal probieren ob es unter meinem Delphi 6 auch auftritt...

Gruß, Motzi

edit: grad getestet - unter Delphi 6 verhält es sich ganz genauso.
Manuel Pöter
  Mit Zitat antworten Zitat