appel DLL C++ en Delphi (pb avec type)
Bonjour,
Je dois appeler une fonction d'une dll C++ en Delphi.
Mais j'ai des pb avec les types (notamment "typedef BYTE RSI_TEMPLATE[9]").
Je ne sais pas d'autres part comment initialiser ma structure delphi avant de la passe à la fonction.
Faut-il attribuer de la mémoire ???, ect ...
code c++ (fichier .h)
Code:
1 2 3 4 5 6 7 8 9 10 11
|
//déclaration de la fonction à appeler
RSI_DLL RSI_RESULT RSI_API rsiGetUserRecord(byte id, RSI_USER_RECORD FAR* ur);
//les types
typedef BYTE RSI_TEMPLATE[9];
typedef struct
{
byte id;
RSI_TEMPLATE templateVector;
} RSI_USER_RECORD; |
Mon Code delphi
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
//déclaration de la fonction
function rsiGetUserRecord(Userid : byte; userRec:RSI_USER_RECORD) :integer; stdCall; external ...
//délaration des types delphi
RSI_TEMPLATE=array[1..9] of byte;
RSI_USER_RECORD=record
ID : byte;
templateVector : RSI_TEMPLATE;
end;
//appel de la fonction
var
userRec:RSI_USER_RECORD;
begin
//pour le user ayant id=1
result := rsiGetUserRecord(1,userRec);
//--> erreur "Violation d'accès à l'adresse .. ds le module rsi32.dll..."
end;
merci pour votre aide |