Point d'entrée d'une fonction dans une DLL
Bonjour !
J'ai créé une DLL à l'aide de VC6 avec une fonction exportée de cet acabis :
unsigned long Convert (char* fichier1, char* fichier2);
Maintenant je désire utiliser cette fonction de la DLL dans un autre programme. Pour cela je passe par LoadLibrary pour charger la DLL, puis GetProcAddress pour récupérer un pointeur sur la fonction.
Mais quand je fais :
Code:
1 2
|
FARPROC mafonction = ::GetProcAddress(HANDLE, "Convert"); |
Ca ne fonctionne pas. Il ne trouve pas la fonction Convert. Quand j'utilise l'outil ViewDependency (de Visual Studio) pour etudier ma DLL, je vois que la fonction ne s'appelle plus "Convert" mais "?Convert@@YAPGPADO@Z".
Je passe donc cette chaine a GetProcAddress et la ca fonctionne. Ca veut dire qu'a la creation de ma DLL y a un truc qui m'a échappé pour que le nom de la fonction soit simplement Convert.
Comment faire pour créer une DLL contenant des fonctions dont le nom serait exploitable dans les programmes ? C'est une option de compile dans les Settings de mon programme ?
Merci pour votre aide.
A bientot.
Alexandre.