bonjour...
Je dispose d'une DLL win32 écrite en Pascal. Je souhaite utiliser cette DLL dans un programme C. Après avoir chargé ma DLL, j'arrive de manière dynamique à utiliser quelques fonctions de la DLL mais pas toutes. En effet certaine d'entre elles ont un prototype particulier et me renvoie des paramètres incompatible avec le C.
J'ai par exemple la fonction suivante:
Pour ce type de fonction je n'ai aucun problème mais la ou ca coince c lorsque j'ai des fonction qui n'attendent aucun paramètre d'entrée et me renvoie un string qui est un type nom reconnu en C.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 //définition du prototype de la fonction typedef (*FCTX1) (char *monNom); // Déclaration du pointeur FCTX1 Ptr1; //chargement de la fonction "fonctionIdentification" Ptr1 = (FCTX1)GetProcAddress(ModId, "fonctionIdentification") //ModId contient l'adresse de la DLL //utilisation de la fonction "fonctionIdentification" Ptr1 ("jayceBlaster");
je n'arrive meme pas a définir le prototype de ma fonction dans le C. Je serai tenté d'écrire:
Mais ceci ne marche pas bien entendu d'une part car le type string est inconnu en C et d'autre par car le compilateur n'accepte pas la définition de cette fonction qui n'attend aucun paramètre d'entrée..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 //définition du prototype de la fonction typedef string (*FCTX2) (); // Déclaration du pointeur FCTX2 Ptr2; //chargement de la fonction "heure" Ptr2 = (FCTX2)GetProcAddress(ModId, "heure") //ModId contient l'adresse de la DLL //utilisation de la fonction "heure" maChaine=Ptr2 (); // maChaine== string
J'espere que je suis claire dans mes explications et que quelqu'un pourra me venir en aide??
merci...
Partager