J'installe une application personnalisée sur un tout nouveau serveur Windows 2003. Quelques DLL doivent être ajoutées et enregistrées, et je les ai copiées sur le serveur dans le dossier C: \ WINDOWS \ System32 - où elles se trouvent toujours lorsque l'application a été exécutée sur Windows NT et 2000 .
Cependant, lorsque j'essaie de les enregistrer en utilisant:
regsvr32 c: \ windows \ system32 \ nameoflibrary.dll
Il redonne:
LoadLibrary("c:\windows\system32\nameoflibrary.dll") failed -
The specified module could not be found.
La DLL est cependant là. Je peux le voir. Si je copie le chemin d'accès à l'Explorateur Windows et tente de l'exécuter, il m'indique que je ne peux pas exécuter une DLL, donc je sais qu'elle est là. Une complication mineure est que les DLL ont été construites dans VB5 - mais le runtime VB5 est installé sur le serveur, donc cela ne devrait pas être un problème.
Des idées?
Réponses:
Il se peut qu'un module dépendant soit manquant. Vous devez regarder le code getlasterror pour déterminer pourquoi le module n'a pas été trouvé.
la source
Jim B. a probablement raison. Obtenez DependencyWalker et chargez {nameoflibrary.dll} - il vous montrera quelle DLL dépendante est manquante.
la source
dumpbin /dependents <file.exe/dll>