Beim Laden von DLL-Problemen rate ich Ihnen, das Dependency Walker -Tool zu verwenden. Es hat sich bei solchen Problemen als wertvoll erwiesen, da es Ihnen das genaue Problem zeigt.
Wenn Sie Visual Studio 2005 besitzen, können Sie es in %code% finden.
Aktualisierung:
%code% ist die Debug-Version der Visual C ++ - Laufzeit 9.0. Es sollte nur zum Debuggen verwendet werden. Ich empfehle dringend, eine Release-Version Ihrer Bibliothek zu erstellen, um das DLL-Ladeproblem zu vermeiden. Wenn Sie die Debug-Version jedoch unbedingt bereitstellen müssen, finden Sie alle erforderlichen DLLs in %code% .
klingt so, als hätten Sie die visuelle C ++ - Laufzeit auf dem Zielrechner nicht installiert. Sie können das von hier installieren scheint die Debug-Versionen dieser DLLs zu verwenden, vielleicht musst du deine App auch erst im Release-Modus erstellen? Dieser Beitrag und diese haben einige andere Vorschläge, die helfen könnten .. .
Es beschwert sich, dass es Probleme hat, die CRT-DLLs zu finden. Überprüfen Sie zuerst, dass die DLL das erforderliche Manifest enthält. Wählen Sie in Visual Studio Datei + Öffnen + Datei die DLL aus, und vergewissern Sie sich, dass sie einen RT_MANIFEST-Knoten enthält. Das nächste Problem besteht darin, dass Sie einen Debug-Build Ihrer DLL nicht bereitstellen können. Es wird eine Abhängigkeit von der Debug-Version des CRT haben, die Sie auf dem Zielcomputer nicht installieren können.
Stellen Sie entweder das Release-Build Ihrer DLL bereit oder kompilieren Sie die DLL mit der Option / MT, sodass die CRT statisch verknüpft ist. Projekt + Eigenschaften, C / C ++, Codegenerierung, Laufzeitbibliothek. Dies funktioniert nicht, wenn die DLL mit der Option / clr kompiliert wurde.
Ich habe c ++ dll mit in meinem c # -Projekt, lief es gut auf meinem Windows XP-Maschine, aber wenn ich mein Debug-Projekt auf Fenster 2003 Server (x64) kopieren, erhielt ich Fehler unten, kann mir jemand sagen, was ist das Problem, und wie kann ich es beheben.
Danke
"System.DllNotFoundException: DLL 'lib.dll' konnte nicht geladen werden: Diese Anwendung konnte nicht gestartet werden, da die Anwendungskonfiguration nicht korrekt ist. Die Neuinstallation der Anwendung könnte dieses Problem beheben"
Ist lib.dll eine 32-Bit-DLL? Ihr C # -Programm wird nativ auf x64 ausgeführt, kann jedoch keine 32-Bit-DLLs laden. Sie können versuchen, die Ziel-CPU des C # -Projekts auf "x86" zu ändern, um die Ausführung unter WOW64 zu erzwingen.