impossible de charger la DLL en C#
comment charger une dll dans un projet c#
erreur:Impossible de charger la DLL 'Reader.dll': Le module spécifié est introuvable. (Exception de HRESULT: 0x8007007E)
exemple de code:
[DllImport("Reader.dll")]
public static extern byte OpenReader(ref IntPtr hCom, byte LinkType, string com_port);
image:
Probablement une question évidente, mais la dll est bien sûr en réalité actuelle?
oui il est présent. en fait, si vous essayez d'ajouter une référence et je choisis la dll en tant que cible. j'ai rencontrer cette erreur: une référence à c:\...\reader.dll ne pourrait être ajouté
Vous ne pouvez pas ajouter une référence à la dll car il n'est pas un .NET de l'assemblée. Il n'a rien à voir avec votre problème. Essayez d'utiliser dependency Walker pour déboguer votre question dependencywalker.com
Est le reader.dll un c/c++ de la bibliothèque? A-t-elle toutes les dépendances que peut-être il ne peut pas trouver? Est-il une bibliothèque com qui peut être enregistré et si oui est-il enregistrer?
GPSVC = Groupe de Service de la Politique
oui il est présent. en fait, si vous essayez d'ajouter une référence et je choisis la dll en tant que cible. j'ai rencontrer cette erreur: une référence à c:\...\reader.dll ne pourrait être ajouté
Vous ne pouvez pas ajouter une référence à la dll car il n'est pas un .NET de l'assemblée. Il n'a rien à voir avec votre problème. Essayez d'utiliser dependency Walker pour déboguer votre question dependencywalker.com
Est le reader.dll un c/c++ de la bibliothèque? A-t-elle toutes les dépendances que peut-être il ne peut pas trouver? Est-il une bibliothèque com qui peut être enregistré et si oui est-il enregistrer?
GPSVC = Groupe de Service de la Politique
OriginalL'auteur john | 2012-02-16
Vous devez vous connecter pour publier un commentaire.
Si le problème est vraiment "ne peut pas être trouvé", puis à l'aide de ProcMon de Sysinternals va vous montrer où le système est à la recherche de la DLL.
Cependant, souvent ces sortes d'exceptions dire "j'ai trouvé la DLL mais je ne peux pas charger", et que peut-être parce que d'une dépendance de la DLL est manquant plutôt que la DLL elle-même, ou parce que la DLL est incompatible avec l'application d'essayer de le charger. Si votre application en C# est mis pour "any CPU" et vous êtes sur une machine 64 bits, vous aurez ce genre d'erreur au chargement de la non géré Dll 32 bits.
Une façon d'isoler le problème serait de créer un simple C/C++ qui permet de charger la DLL. (Charger dynamiquement avec la fonction LoadLibrary si vous n'avez pas accès à l'importation lib.) Ensuite, utilisez Dependency Walker pour le profil de test, et il indique le nom de la Dll manquantes.
avez-vous jamais obtenir ce résolu? Je suis en cours d'exécution dans la même chose et pourrait utiliser un peu plus les idées pour le débogage. Thx! (GPSVC.dll et IESHIMS.DLL)
veuillez vérifier mes accepté de répondre. GPSVC.dll et IESHIMS.DLL n'étaient pas le problème. dans mon cas, c'était un x64/x86 question. que des idées: vérifiez si votre dll dans le dossier de débogage. compiler votre projet x86(peut-être que vous n'avez pas besoin d'utiliser coreflags, de fonctionner comme x86 va faire le travail ).
OriginalL'auteur Will Dean
Bien que l'reader.dll est impossible de charger GPSVC.dll et IESHIMS.DLL.
j'ai réussi à le faire fonctionner par l'exécution de l'corflags commande sur application.exe
l'application est maintenant marqué comme 32bit:
Version : v4.0.30319
CLR-Tête: 2.5
PE : PE32
CorFlags : 3
ILONLY : 1
32 BITS : 1
Signé : 0
OriginalL'auteur john
J'ai trouvé ça dans un autre post. Il se peut que votre situation
NUnit "manquant" GPSVC.DLL sur Windows 7/64
OriginalL'auteur Alex Mendez
Si c'est une simple DLL C il a juste besoin d'être dans le même dossier que le .exe.
ses un visual c++ 6.0 DLL.
OriginalL'auteur Peter C