Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
Delphi 12 Athens
|
AW: C++ DLL - Headerkovertierung und Funktionsaufruf
6. Jun 2011, 18:14
Ich habe es nun selbst versucht und dabei ist das hier heruasgekommen. Da ich aber nicht sonderlich viel Ahnung von C/C++ habe, kann das auch völliger Quatsch sein, probier es halt einmal.
Delphi-Quellcode:
type
P_O2DRESULTOBJECT = ^T_O2DRESULTOBJECT;
T_O2DRESULTOBJECT = packed record
iModelId: integer;
iPositionX: integer;
iPositionY: integer;
fRotation: single;
fMatchQuality: single;
end;
P_O2DRESULT = ^T_O2DRESULT;
T_O2DRESULT = packed record
bOverallPass: T_BOOL;
fOverallMatchQuality: single;
iNrOfObjectsFound: integer;
iObjectsFoundListSize: integer;
objectsFoundList: P_O2DRESULTOBJECT;
iImageSize: integer;
image: PByte;
end;
var
O2dGetLastResult: function(iConnectionID: DWord; var decodingResult: T_O2DRESULT): integer; cdecl;
procedure demo_O2dTriggerWithResults(con_id: Cardinal; const filename: string);
const
maxNumberOfObjects = 5;
maxImageSize = 308278;
var
i, retval: integer;
_result: T_O2DRESULT;
detail: array[0..maxNumberOfObjects - 1] of T_O2DRESULTOBJECT;
image: PByte;
begin
_result.iObjectsFoundListSize := maxNumberOfObjects;
_result.objectsFoundList := @detail[Low(Detail)];
image := AllocMem(maxImageSize);
try
_result.image := image;
_result.iImageSize := maxImageSize;
retval := O2dGetLastResult(con_id, _result);
for i := 0 to result.iObjectsFoundListSize - 1 do
(* irgendwas machen *)
finally
FreeMem(image);
end;
end;
Detlef "Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
|