J'essaie de créer une application dans Visual Studio qui pourra accéder à un fichier .dll qui existe déjà. J'ai besoin de l'application pour appeler des routines. J'ai également un fichier d'en-tête qui existe déjà.
J'ai fait des recherches sur Internet et j'ai découvert que je devais créer un fichier .lib. En regardant des questions similaires ici, j'ai trouvé un lien: http://support.Microsoft.com/kb/13131 Je ne peux cependant pas suivre les instructions.
Les informations dans le lien indiquent de créer un fichier DEF (j'ai lu ailleurs que cela doit être compilé en tant que DLL avec le même nom, mais je ne sais pas quel est ce nom, le même nom que le fichier .dll?). Mais je ne comprends pas la première direction, "Utiliser DUMPBIN/EXPORTS". J'ai ensuite besoin de "stub out" les fonctions, puis quelque chose à voir avec les fichiers .OBJ (je ne sais pas ce que ces les fichiers sont).
Existe-t-il des instructions pas à pas, similaires au lien ci-dessus, faciles à suivre?
Vous aurez besoin de Microsoft Visual C++ 2010 Express (ou de toute autre source d'outils de ligne de commande MSVC) et de votre DLL.
Pas:
dumpbin /EXPORTS yourfile.dll > yourfile.exports
yourfile.exports
dans un nouveau yourfile.def
fichier. Ajoutez une ligne avec le mot EXPORTS
en haut de ce fichier.VC\bin
répertoire (celui où lib.exe
et d'autres outils de compilation résident). vcvars32.bat
lib /def:yourfile.def /out:yourfile.lib
ou pour les versions x64
lib /def:yourfile.def /machine:x64 /out:yourfile64.lib
Vous devez générer deux fichiers: yourfile.lib
et yourfile.exp
Vous pouvez utiliser l'outil IMPLIB de Digital Mars. Il peut créer un fichier lib en utilisant uniquement la DLL, sans avoir besoin d'un fichier .def.
Le lien de téléchargement est http://ftp.digitalmars.com/bup.Zip .
La ligne de commande est:
implib.exe /s mydll.lib mydll.dll