-
[VC .NET] Manque de dll
Salut à tous,
Une petite question de newbie à propos d'un couplage de librairies: en fait j'essaye d'intégrer des bibliotheques (Ogre 3d pour rien vous cacher) dans un autre programme. Le problème c'est qu'a l'execution j'ai pleins de messages de manques de dll...Apparamment d'après mes recherches il suffit de spécifier le repertoire de dlls dans les propriétés du projet, mais je n'y arrive pas :aie:
Quelqu'un aurait il une ptite soluce à ce problème fort énervant ? Merci les gars!
-
Bonjour,
Essaye d'être plus précis.
Ton programme utilise t il le dotnet ?
Si non à priori tu cherches à lier statiquement des dll à ton applications.
Une solution consiste à ajouter à ton projet les fichiers .lib pour chque DLL.
Ce sont bien des erreurs de Link que tu as ?
-
Alors dans ma solution, j'ai fait "ajouter projet" et spécifié le repertoire d'un projet Ogre qui fonctionne (moteur 3D), il a donc inclus le projet. Pas de problème pour la compilation, mais à l'execution j'ai un message du type "Cette application n'a pas pu démarré car Ogremain_d.dll" n'a pas été trouvé etc.
Ceci me parait logique car un projet Ogre recquiert une spécification du dossier bin/debug pour les dll. Les .lib semblent quant à elles bien linkées...
Dans propriété de projet, j'ai:
Code:
Autres répertoires inclus: ..\include;$(OGRE_HOME)\include
-> CE qui est bon puisque les .lib sont dans include
Mais pour les dll, je ne sais pas ou spécifier le répertoire !!
-
Tu peux ajouter l'emplacement des dlls en question dans le PATH.
-
Oui mais il y a bcp de PATH dans la fenêtre propriétés, quel est celui qui correspond aux dll dans Visual studio ?
-
Aurelien ne parlait pas des paths de visual studio (je te conseille d'y toucher le moins possible d'ailleurs), mais de la variable d'environnement de windows.
-
Ah désolé..Eh bien dans le PATH windows, j'ai bien un $OGRE-HOME défini à C:/OgreSDK...
Mais dans ma solution, il n'y a qu'un seul projet qui utilise les dll Ogre, donc j'imagine que c'est ds les proprieté de ce projet là qu'on doit spécifier qch en plus..Je me trompe peut-être...
-
Ce n'est pas VC++ qui contrôle le chargement des dlls, à la limite si elles ne sont pas là c'est pas un problème, il n'en n'a pas besoin pour compiler.
Y'en a besoin à l'exécution, et c'est Windows qui cherche les dlls, pas VC++. Et Windows a une procédure bien définie.
Tu peux créer un PATH local à ton environnement en lançant ton projet VC++ depuis un fichier bat qui ajoute les dll Ogre au PATH.
Ou alors faut copier toutes les dlls Ogre dans le répertoire de ton projet.
-
D'accord, je vais essayer de copier les dlls dans le projet (c'est un peu crade mais bon...) Dans quel répertoire dois-je les mettre ? /bin ?
-
Tu peux les mettres dans le même répertoire que celui de ton exe.
Mais si tu as une variable d'environnement qui est définie (OGRE-HOME), alors il y a mieux : dans les propriétés->débogage->environnement, tape:
Code:
PATH=%OGRE-HOME%\bin;%PATH%
et ça devrait marcher (si %OGRE-HOME%\bin est correct).