Hallihallo,
ich habe eine Frage zum Zugriff auf eine Funktion in einer
DLL.
Die
DLL ist in C geschrieben und liefert folgende Funktion:
Code:
WandExport MagickBooleanType MagickGetSize(const MagickWand *wand,
unsigned long *columns,unsigned long *rows)
{
*columns=5;
*rows=6;
return(MagickTrue);
}
In dieser Funktion geht es mir primär um die zwei unsigned long. Das sind doch Pointer oder?
In Delphi habe ich momentan folgenden Import:
Delphi-Quellcode:
function MagickGetSize(wand: PMagickWand; cols, rows : PCardinal): MagickBooleanType; cdecl; external 'blub.dll' index 311;
// Der Zugriff auf die Werte in der Funktion erfolgt dann wie folgt:
procedure BlaBlub();
var
ori_width, ori_height: Cardinal;
begin
// Wand ist vom Typ PMagickWand und ist initalisiert etc pp.. da kann der Fehler nicht liegen
if (MagickGetSize(wand, @ori_width, @ori_height) = MagickTrue) then begin
showmessage('blub'); // WIRD angezeigt
end;
// Leider steht in ori_width und ori_height nichts drinne..
end;
Was mache ich falsch? Die Index-nummer habe ich via Disassembler verifiziert, die stimmt.. Leider habe ich von C nicht viel Ahnung.
HELP!^^
MSVC2008 (C/C++ with QT), Delphi
RAD 2010, Flash CS5 (FDT/Adobe), Java EE (Eclipse), PHP5
Antwortsprachen: Deutsch, Englisch, Französisch, Japanisch