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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager