Bonjour,
J'ai un problème de DLL non trouvée. Mais à mon avis, on est loin du classique "il faut la copier dans le PATH", ou "faut la mettre dans les dépendances", etc. Non, car là le problème :
1) est apparu récemment, et n'existait pas avant
2) ne se pose qu'avec le designer de Visual Studio (2005)
3) le programme compile et s'exécute toujours très bien, et je gère mes dépendances correctement.
J'explique d'abord la structure de mon projet :
J'ai 3 "Solutions" Visual (ce que moi j'appellerais plutôt "projets", mais bon).
-Une solution C++/CLI qui me génère Core.dll, une bibliothèque à moi, contenant des classes utilitaires.
-Une solution C++/CLI qui me génère CustomControls.dll, une bibliothèque à moi qui définit des contrôles .NET personnalisés (boutons, etc...). Elle utilise Core.dll, déclarée bien proprement dans les dépendances.
-Une solution C++/CLI, programme principal utilisant et important à la fois Core.dll et CustomControls.dll
Or, je le répète, l'ensemble fonctionne très bien ! Cela compile, s'exécute et fonctionne sans soucis. Et, jusqu'à récemment, le designer ne me posait pas de problèmes non plus.
Mais il se trouve que dernièrement, alors que, comme tous les jours, j'ouvrais (dans le projet principal) MyWindow.h avec le designer, voilà qu'il me jette... Impossible de charger la DLL 'EXCore.dll': Le module spécifié est introuvable. (Exception de HRESULT : 0x8007007E)
Certes, MyWindow.h utilise des controls de CustomControls qui eux-même utilisent EXCore, mais avant, ça marchait ! Du jour au lendemain, erreur.
Réflexe immédiat : bien nettoyer toutes les solutions, virer les bases intellisense, recompiler l'ensemble et compagnie. Niet, même erreur.
Autre idée : avec le Process Monitor de Microsoft (pas le gestionnaire des tâches, hein), j'ai scruté les accès à EXCore.dll. C'est vrai que lorsque le designer essaye de charger MyWindow.h, il cherche le fichier EXCore.dll à beaucoup d'endroits, mais évidemment, il semble le trouver (SUCCESS)... là où il se trouve ! Pour être sûr, j'ai essayé de mettre EXCore.dll dans des dossiers standards du PATH, mais ça n'a rien changé.
Donc voilà. Même si je peux toujours à la main modifier le code de MyWindow.h, ce n'est pas bien pratique pour modifier l'interface. Du jour au lendemain, le designer refuse de m'ouvrir ce fichier qui ne lui posait pas de souci avant.
Peut-être une piste : entre la fois où ça marchait et la fois où ça ne marchait plus, je crois que j'avais nettoyé un peu la base de registres avec des outils du genre Registry Cleaner. Depuis, j'ai restauré la base telle qu'elle était avant, grâce au backup. Mais ça n'a pas aidé.
Quelqu'un aurait-il la moindre idée de ce que je peux essayer de plus ?
Merci d'avance
+
Chacha
[edit:]
J'oubliais une information que je voulais ajouter ; voici en gros l'arborescence des mes projets (le coup du trunk, c'est parce que j'utilise svn)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 Core |_trunk |_Core | |_les .h, .cpp,... | |_Release | |_ les.obj |_release |_ Core.dll (généré automatiquement) CustomControls |_trunk | CustomControls | |_les .h, .cpp,... | |_Release | |_ les.obj |_release |_ CustomControls.dll (généré automatiquement) |_ Core.dll (copié automatiquement grâce à la dépendance) ProjetPrincipal |_trunk | ProjetPrincipal | |_les .h, .cpp,... dont MyWindow.h | |_Release | |_ les.obj |_release |_ ProjetPrincipal.exe |_ CustomControls.dll (copié automatiquement grâce à la dépendance) |_ Core.dll (copié automatiquement grâce à la dépendance)
[edit2:]
De pire en pire !
Voilà que le designer me sort maintenant :
"C:\[le chemin correct]\MyWindow.h : impossible d'ouvrir le fichier
Il est à la bonne place, il n'est bloqué par personne... Il se fiche un peu de moi, là, quand même.
Partager