Pourquoi Visual Studio ne peut-il pas trouver ma DLL?

Dans Visual Studio 2010, sous VC++ Directories > Executable Directories , j’ai spécifié le chemin d’access à glew32d.dll . Cependant, quand je lance l’exécutable, il se plaint toujours.

D’un autre côté, si je copie la DLL dans le dossier local et que je lance l’exécutable, elle ne se plaint pas.

Quelqu’un peut-il s’il vous plaît me dire comment résoudre ce problème? Aussi, pourquoi Visual Studio ne reconnaît-il pas ce chemin?

Scénario de mise à jour : J’utilise actuellement un projet de modèle que j’utilise comme code de démarrage pour beaucoup de mes projets. Ce modèle dépend de glew32d.dll. Je stocke généralement toutes les DLL dépendantes dans un dossier bin commun. J’espérais faire référence à ce dossier et Visual Studio pourrait lire les dll à partir de là, au lieu de devoir les copier à chaque fois. Quel serait un bon moyen de gérer cela?

Spécifier le chemin d’access au fichier DLL dans les parameters de votre projet ne garantit pas que votre application sera
Recherchez la DLL au moment de l’exécution. Vous avez seulement dit à Visual Studio comment trouver les fichiers dont il a besoin. Ça n’a rien
à voir avec la façon dont le programme trouve ce dont il a besoin, une fois construit.

Placer le fichier DLL dans le même dossier que l’exécutable est de loin la solution la plus simple. C’est le chemin de recherche par défaut pour les dépendances, vous n’aurez donc pas besoin de faire quoi que ce soit de spécial si vous allez dans cette voie.
Pour éviter de devoir le faire manuellement à chaque fois, vous pouvez créer un événement post-construction pour votre projet.
va automatiquement copier la DLL dans le répertoire approprié une fois la génération terminée.

Vous pouvez également déployer la DLL dans le cache côte à côte de Windows et append un manifeste à votre application qui spécifie l’emplacement.

J’ai rencontré le même problème avec la même lib, j’ai trouvé une solution ici sur SO:

Recherchez MSDN pour “Comment: définir des variables d’environnement pour les projets”. (Il s’agit du projet> Propriétés> Propriétés de configuration> Débogage des propriétés “Environment” et “Merge Environment” pour les utilisateurs pressés.)

La syntaxe est NAME = VALUE et des macros peuvent être utilisées (par exemple, $ (OutDir)).

Par exemple, pour append C: \ Windows \ Temp au PATH:

 PATH=C:\WINDOWS\Temp;%PATH% 

De même, pour append $ (TargetDir) \ DLLS au PATH:

 PATH=%PATH%;$(TargetDir)\DLLS 

(répondu par Multicollinearity ici: Comment définir un chemin dans Visual Studio?

essayez “propriétés de configuration -> débogage -> environnement” et définissez la variable PATH au moment de l’exécution

Pour append à la réponse d’Oleg:

J’ai pu trouver la DLL à l’exécution en ajoutant $(ExecutablePath) de Visual Studio à la variable d’environnement PATH dans Propriétés de configuration-> Débogage. Cette macro est exactement ce qui est défini dans le champ Propriétés de configuration-> Répertoires VC ++-> Répertoires exécutables *, donc si vous avez cette configuration pour pointer vers les DLL dont vous avez besoin, l’append simplement à votre PATH facilite la recherche des DLL à l’exécution!

* Je ne sais pas si la macro $(ExecutablePath) utilise le paramètre Répertoires exécutables du projet ou le paramètre Répertoires exécutables des pages de propriétés globales. Étant donné que toutes mes bibliothèques sont souvent configurées via les pages de propriétés, ces répertoires apparaissent par défaut pour tout nouveau projet que je crée.