J'utilise Visual Studio 2008. J'ai une DLL et un programme de test EXE. Il y a un fichier d'en-tête pour la DLL qui contient ceci:Wrong Library Importé via #pragma comment (lib, ...) dans Visual C++
#ifdef _DEBUG
#pragma comment(lib, "FooD.lib")
#else
#pragma comment(lib, "Foo.lib")
#endif
L'objectif est de relier dynamiquement à FooD.dll par la bibliothèque d'importation FooD.lib, pour une version de débogage, et FOO.DLL pour une sortie construire. Le problème est que lorsque j'exécute le programme de test de débogage-construction, il veut être lié à Foo.dll.
J'ai vérifié que _DEBUG
est défini pour le programme de test dans une version de débogage. Si je remplace le #pragma comment
avec une directive #error
, je vois l'erreur, donc je suis à peu près sûr que le #pragma comment
est en cours de traitement comme je l'espère. J'ai également vérifié que les deux FooD.dll
et FooD.lib
existent. (Foo.dll
et Foo.lib
n'existent pas.) Mais à l'exécution, j'obtiens un message d'erreur "Impossible de trouver Foo.dll".
Une idée de ce qui pourrait ne pas aller, ou où je peux chercher pour comprendre pourquoi la DLL incorrecte est recherchée à l'exécution?