2009-08-20 7 views
1

[DllImport ("DoSomething.dll", EntryPoint = "quelquechose_dump", SetLastError = true)] private static extern void quelquechose_dump (dumper IntPtr);Vista DLLImport Problème C#

Quand je lance ce DLLImport sur les machines XP, il fonctionne très bien, mais sur vista je reçois l'exception:

Impossible de charger « DoSomething.dll » DLL: Impossible de trouver le module spécifié. (Exception de HRESULT: 0x8007007E)

Sur les deux machines se trouve dans le répertoire Windows/System32, mais pour une raison quelconque vista ne le charge pas.

Et quand je Qualifiez entièrement le chemin sur la machine de vista ... DllImport ("C: \ WINDOWS \ system32 \ DoSomething.dll" ... Il fonctionne

Dois-je réellement dire DLLImport! Fonction sur la machine vista à regarder dans le répertoire system32

+1

Est-ce la version 32 bits ou 64 bits de Vista? – Jeremy

+0

La machine Vista est de 32 bits (désolé de ne pas dire 32 bits, apparemment, je dois utiliser 32 caractères.) – Will

+0

La DLL a-t-elle été enregistrée sur la machine Vista? – mxmissile

Répondre

0

Le problème est que quelqu'un faisait copter la DLL dans le répertoire de sortie des solutions actuelles ... Le problème étant qu'ils n'ont pas copié les dépendances de la DLL dans le répertoire de sortie. Donc, d'une manière ou d'une autre XP pourrait résoudre ces dépendances et Vista échouerait. (La DLL est exactement la même sur les deux OS)

Soluti on: Supprime le coping des dll système dans le répertoire de sortie des solutions actuelles ...

0

Placez Dll dans "Paramètres du document \ Administrateur" pour que le chemin fonctionne.

Prenez note que vous avez besoin de placer tous les fichiers de prise en charge exemple de fichiers .ino ou fichiers .txt support à cette DLL également.

Cela fonctionnera bien.

Tout le meilleur.

Cordialement, Prasath

Questions connexes