Comment importer un DLL (minifmod.dll) en C++?
Je veux pouvoir appeler une fonction à l'intérieur de cette DLL. Je connais déjà la liste d'arguments pour la fonction mais je ne sais pas comment l'appeler.
Est-il possible de déclarer une fonction importée en C++ comme en C #?
La syntaxe c # pour déclarer une fonction importée n'est pas disponible dans c ++. Voici d'autres SO questions sur l'utilisation des DLL:
Si DLL inclut une bibliothèque de types COM, vous pouvez utiliser l'instruction #import en tant que telle:
#import dllname.dll
Sinon, vous devrez vous connecter à une bibliothèque d'importation et fournir un prototype de fonction pour votre compilateur. En règle générale, la bibliothèque d'importation et un fichier d'en-tête avec les prototypes sont fournis par le développeur DLL. Si vous ne l'êtes pas, il peut être très difficile de produire - sauf si vous connaissez déjà la liste des arguments de la fonction, ce que vous dites connaître. Les instructions peuvent être trouvées ici , entre autres.
Lors de l'exécution, vous pouvez appeler LoadLibrary()
puis appeler GetProcAddress()
pour accéder à la fonction à partir d'une DLL. Vous devrez attribuer cette adresse à un prototype que vous définissez avec typedef
. Voir l'exemple à la page de documentation GetProcAddress
.