Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
Delphi 10.4 Sydney
|
Re: Probleme bei Übersetzung o. Aufruf einer C Funktion
18. Aug 2009, 11:58
Hallo,
also eine normales long ist in Delphi Integer,
das unsigned ist Cardinal, also schon mal richtig.
Aber hier fällt was auf.
PChar(FEIB_Firmware) , 100
Ist wirklich 100 Zeichen lang ?
FEIB_Firmware ist ja ein String, also variabel lang.
Wenn du 100 übergibst, will die c-Routine vielleicht auch 100 Zeichen schreiben (strncpy).
Schreib mal lieber
PChar(FEIB_Firmware), Length(FEIB_Firmware)
Ich mag übrigens dieses PChar Type-Cast nicht (obwohl es ja funktioniert)
und nehme immer array[0..X] of Char oder halt nen richtigen PChar,
aber das ist Ansichtssache.
#Update#:
FEIB_Firmware.SetLength(100) fehlt !!!
Das wird ja zurückgegeben.
Wie ich schon gesagt habe array[0..X] of Char und es gibt keinen Ärger.
#Update2:#
Wenn es immer noch klemmt, stdcall statt cdecl benutzen
Heiko
Heiko
|