Nein, ich glaube du hast ihn falsch verstanden, du musst sozusagen, wie du die Funktion importierst ändern.
Delphi-Quellcode:
function xyzErrMsg ( errorCode : Word
) : String; stdcall; external xyzdll name 'ErrMsg';
zu:
Delphi-Quellcode:
function xyzErrMsg ( errorCode : Word
) : PAnsiChar; stdcall; external xyzdll name 'ErrMsg'; //Man verwendet ungern Strings, also den DatenTyp String von Delphi. PAnsiChar ist nur eine Adresse auf den Anfang eines Textes im Speicher.
Und um im Speicher zu wissen, wann er aufhört, setzt man ein 0 Byte (#0 in Char) am Ende.
D.h. wenn du auf den Datentyp PAnsiChar zugreifst, wird alles gelesen bis zum 0 Byte.
Gruß NickelM
das hab ich schon so nach PAnsiChar geändert.
Ich rufe dann diese Funktion so auf:
var Meldung : PAnsiChar;
Fehlernummer : Word;
Begin
Meldung := xyzErrMsg(Fehlernummer);
...
...
end;
nur leider steht da nur Blödsinn drin ( wenn ich schon mit dem Debugger reinschaue)
=> $495ABA{"} ....
und drin stehen muß z.B. => success etc.
Achso: Das Gleiche compiliert unter Delphi 2007 - einwandfrei!
Gruß
McInternet