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:
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;
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
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]);
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.
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