web-dev-qa-db-fra.com

Importer un DLL avec C++ (Win32)

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 #?

13
Kristina Brooks
12
luke

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.

5
Russell Newquist

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.

0
Serge Rogatch