Hallo Fritzew,
danke für die Antwort. Das mit den Strings war mir bewusst. Nach den etlichen Tutorials die ich durchgelesen habe umso mehr.
Delphi-Quellcode:
const
cwmaxnamesize = 30;
type
tApi_Materialrec = packed record
Name: array [0 .. cwmaxnamesize - 1] of Ansichar;
Group: array [0 .. cwmaxnamesize - 1] of Ansichar;
MatCode: array [0 .. cwmaxnamesize - 1] of Ansichar;
Mate1, mate2, mate3, matg1, matg2, matgew: single; // Materialgewicht
Mattyp: integer;
list_matbez,
mat_photoflag,
mat_photo1,
mat_photo2: integer;
end;
Funktionen geben niemals Records zurück sondern sind bei uns immer aufgebaut nach dem Schema:
function getMatDataforId(aid : Integer; var matrec : tApi_Materialrec) : Bool;
Das funktioniert bei uns soweit problemlos.
Die Funktion hätte ich auch mit einem Var Parameter aufgebaut, da ich das so auch aus der
WinAPI kenne.
Wie wird denn jetzt die von dir beschriebene Funktion aufgerufen. Muss das dann auch zwingend ein Array of AnsiChar sein? Kann man da nicht einfach eine Variable vom Typ PChar nehmen? Und wenn ja, wie läuft der Aufruf dann ab sofern sich da was ändern sollte. Meine Ergebnisse können eine unterschiedliche Länge haben die ich vorher nicht kenne. Infolge dessen kann ich auch keine festen Arrays nehmen.