2009-08-20 13 views
1

[DllImport ("DoSomething.dll", EntryPoint = "etwas_dump", SetLastError = true)] private statisch extern void something_dump (IntPtr dumper);Vista DLLImport Problem C#

Wenn ich diese DLLImport auf XP-Rechnern laufen funktioniert es gut, aber auf Vista erhalte ich die Ausnahme:

kann nicht DLL ‚DoSomething.dll‘ laden: Das angegebene Modul konnte nicht gefunden werden. (Ausnahme von HRESULT: 0x8007007E)

Auf beiden Computern befindet sich im Windows/System32-Verzeichnis, aber aus irgendeinem Grund Vista es nicht geladen.

Und wenn ich voll den Weg auf dem Vista-Rechner qualifizieren ... DllImport ("C: \ WINDOWS \ system32 \ DoSomething.dll" ... Es funktioniert

Muß ich tatsächlich dem DLLImport sagen! Funktion auf der Vista-Maschine in das System32-Verzeichnis zu suchen?

+1

Ist das die 32- oder 64-Bit-Version von Vista? – Jeremy

+0

Die Vista-Maschine ist 32 Bit (Entschuldigung für nicht nur sagen 32 Bit, anscheinend muss ich 32 Zeichen verwenden.) – Will

+0

Wurde die DLL tatsächlich auf dem Vista-Rechner registriert? – mxmissile

Antwort

0

Das Problem ist, jemand war die Dll zu den aktuellen Lösungen Ausgabe-Verzeichnis zu bewältigen ... Das Problem, dass sie nicht die DLL-Abhängigkeiten in das Ausgabeverzeichnis kopieren .. Irgendwie könnte XP diese Abhängigkeiten auflösen und Vista würde scheitern. (Die DLL ist die exakt gleiche auf beiden Betriebssystemen)

Soluti ein: Entfernen Sie die Bewehrung der System-DLLs in das aktuelle Ausgabeverzeichnis der Lösung ...

0

Platzieren Sie Dll in "Dokumenteinstellungen \ Administrator \" diesen Pfad zu arbeiten.

Beachten Sie, dass Sie alle unterstützenden Dateien Beispiel .ino oder TXT-Dateien Unterstützung zu dieser DLL auch platzieren müssen.

Es wird gut funktionieren.

Alles Gute.

Grüße, Prasath