Bonjour....
J'ai une DLL (et son source OUF ) et je souhaite l'utiliser dans un progamme en C. J'y arrive pas mal sauf que je souhaite appeler une fonction me renvoyant la version de la DLL. La fonction me permettant cela se présente comme suit:
Mon programme C se présente de cette manière:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 function versionDLL(version: pchar): integer; stdcall; begin version:='V1.0'; versionDLL:=2; //j'ai rajouter ce parametre de retour pour vérifier que j'appelle bien la fonction end;
Ce programme me permet bien d'acceder à la fonction de la DLL puisque le paramètre de retour (Integer) et bien renvoyé (erreur=2)... En revanche il m'est impossible d'obtenir la version de cette dll dans le programme C.
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 typedef int (*Ptx1)(char *version) // prototype de la fonction char version[5]=""; //pour recueuillir la version de la dll int erreur=0; PTX1 Ptr1; HMODULE ModId; //chargement de la DLL ModId= loadLibrary("maDLL.dll"); //chargement de la fonction ptr1 = getProcAdress(ModId, "versionDLL"); //utilisation de la fonction erreur= ptr1(&version[0]);
En fait je me suis dit puis que ma DLL attend un Pchar (un pointeur sur une caractere) pourquoi pas lui envoyé l'adresse d'un tableau (&ersion[0]) afin que la DLL y range la version de la DLL...
Mais non j'ai tres mal pensé!!!
Quelqu'un peut il me dire ou j'ai faux et comment dois je m'y prendre pour récupérer ce numero de version???[/code]
merci d'avance
Partager