Einzelnen Beitrag anzeigen

hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Probleme bei Übersetzung o. Aufruf einer C Funktion

  Alt 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
  Mit Zitat antworten Zitat