Hi Leute,
derzeit hab ich folgenden Stand.
Die Records müssen als packed records deklariert und die Functionen mit cdecl importiert werden.
Somit läuft erst mal alle ohne irgentwelche Abstürze.
Leider liefert die Methode RW_Create kein Ergebnis. Meine Vermutung, dass ich die Parameter in der Struktur RW_Einstellungen für nPrioritaet, nGeschwindigkeit und nVerbrauch (wie oben als array) deklariert nicht so übergebe wie es sein muß.
Ich häng mal meinen Aufruf hier ran.
Delphi-Quellcode:
function TRouteObject.RCreate(const re: TRW_Einstellungen;
fz: TRW_Fahrzeug; iModus: Longint): Longint;
var Count : Integer;
begin
Result := RW_ORTAS_NO_ROUTEHANDLE;
If FRW_WBHandle = 0 then Exit;
for Count := 0 to 7 do begin
fz.nPrioritaet[count] := 5;
fz.nGeschwindigkeit[count] := 80;
fz.nVerbrauch[count] := 9000;
end;
Result := RW_Create(FRW_WBHandle, re, fz, iModus);
end;
Die Schleife zum füllen der Arrays hab ich hier mal testweise eingefügt.
Der Import der Function RW_Create erfolgt bei mir so:
Delphi-Quellcode:
function RW_Create(hWB: TRW_WBHANDLE;
re: TRW_Einstellungen;
fz: TRW_Fahrzeug;
iModus: Longint): Longint; cdecl; external 'RouteWeg.dll';
Vielleicht sieht hier irgentwo jemand einen Fehler.
Anregungen zum testen würden mir auch schon weiter helfen. Also keine Angst wenn hier jemand eine Idee abliefert und es klappt damit nicht.
Gruß oki