2011-09-15 2 views
0

Avertissement: suis un développeur C# essaie de comprendre quelques fondamentaux C++y compris la sortie du projet en VC++ (VS2010) DLL

ont créé un projet de ligne de commande qui a le .lib d'un fichier DLL lié sous Linker> Entrée> Dépendances supplémentaires, ainsi que l'emplacement des fichiers d'en-tête spécifiés sous C/C++> Général> Additional Include Directories. Ran une build et tout compilé d'accord, avec le .exe étant construit dans le répertoire Debug/Release.

Problème est-ce que je m'attendais aussi à ce que le projet .dll dont dépend le projet soit là (exactement comme lorsque vous ajoutez une référence dans un projet .Net) - mais ce n'est pas le cas. Lors du lancement du .exe il se plaint qu'il ne peut pas trouver la DLL. Assez juste, mais pourquoi le VC++ n'a-t-il pas placé la DLL si elle sait que c'est nécessaire?

Et existe-t-il une "meilleure pratique" pour vérifier que les fichiers DLL dépendants se trouvent dans le répertoire de sortie, autre que de les copier manuellement? J'ai un projet qui nécessitera l'utilisation de certaines bibliothèques tierces, et j'espérais que l'IDE m'aiderait à les gérer ...

Un grand merci pour tous les conseils donnés!

Répondre

1

Si vous créez une solution contenant des fichiers exe et dll, tous les fichiers de sortie sont créés dans les sous-répertoires $ (SolutionDir) Debug ou Release, et exe s'exécute correctement. Dans le cas contraire, vous avez l'une des options suivantes:

  1. Copie dll à l'étape post-construction dans le répertoire où il est disponible pour le chargement (généralement répertoire .exe)

  2. Ajouter répertoire dll PATH.

Questions connexes