Bonjour à tous
Je suis un peu perdu je n'ai pas l'habitude de jouer avec les dll et là j'ai un soucis avec la récupération d'une structure.
en fait j'ai une dll créé à priori à l'aide de visual basic (je ne suis pas sûr) j'ai le prototype des fonctions mais pas celui des structures;
par contre j'ai des tableaux sur papier me décrivant les informations contenues dans les structures.
mon idée pour récupérer les infos de la structure est de lui passer un type void qu'il me suffirait de dépioter de façon à récupérer l'info.
ça à l'air de fonctionner jusqu'à ce que je tente de récupérer les infos de la structure. Soit je ne sais pas comment récupérer les infos soit je ne fais pas un appel correct.
Ca se trouve je fait tout de travers et j'aurais besoin d'un coup de main.
voila la façon dont je m'y prends pour charger ma dll et pour me servir de mes fonctions.
le but ici est de lire le fichier et de récupérer des données dans ce fichier
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 typedef void* OleVariant; typedef int (WINAPI * DLL_Function_OpenFile) (char *, int&); typedef int (WINAPI * DLL_Function_ReadHeader) (int , OleVariant &); int main() { HMODULE hDll = LoadLibrary("librairie.dll"); if (hDll == NULL) { ErrorExit(TEXT("loadLibrary")); } else { cout << "!!librairie chargée!!" << endl; DLL_Function_OpenFile pFuncOpenFile; DLL_Function_CloseFile pFuncCloseFile; pFuncOpenFile = (DLL_Function_OpenFile) GetProcAddress( hDll, "OpenFile" ); pFuncReadHeader = (DLL_Function_ReadAcqHeader) GetProcAddress( hDll, "ReadHeader" ); if (pFuncOpenFile == NULL || pFuncReadHeader == NULL ) { ErrorExit(TEXT("GetProcAddress")); FreeLibrary (hDll); } else { cout << "!!fonctions trouvées!!" << endl; char *nom = "toto.DATA"; int token = -1; int result = pFuncOpenFile(nom, token); //fichier ouvert if (result == 0) { OleVariant structure = NULL; result = pFuncReadAcqHeader(token, structure); ??? } }...
merci à tous
Partager