DLLimport unable to load dll
Bin ich mit einer nicht verwalteten dll in cpp, die ich nenne aus meinem C# - Projekt. Es funktioniert gut auf meinem localhost, aber funktioniert einfach nicht auf meinem shared hosting, winhost. Es passiert, wenn ich versuche, verwenden Sie eine der Funktion in der dll.
Die Fehlermeldung die ich erhalte ist:
"Unable to load DLL 'dllTest.dll" Die Anwendung konnte nicht gestartet werden
werden, da die side-by-side-Konfiguration ist falsch. Finden Sie die
die Anwendung Ereignisprotokoll oder verwenden Sie den Befehl-Linie sxstrace.exe tool für
mehr detail. (Ausnahme von HRESULT:
0x800736B1)","errors":[{"name":"DllNotFoundException","message":"kann Nicht
laden DLL 'dllTest.dll" Die Anwendung konnte nicht gestartet werden, da
die side-by-side-Konfiguration ungültig ist. Finden Sie die
die Anwendung Ereignisprotokoll oder verwenden Sie den Befehl-Linie sxstrace.exe tool für
mehr detail. (Ausnahme von HRESULT: 0x800736B1)"}]}
Ich bin zu Ahnen, dass es ein Pfad-Problem. Die dll in Frage, dllTest.dll platziert in meinem bin Ordner. Ich bin nicht sicher, wo es ist die Suche nach der dll, aber gibt es eine Möglichkeit, kann ich einen Pfad angeben für die Suche nach der dll. Ich kann nicht einen Weg finden, geben Sie einen relativen Pfad zu der dll.
Ich denke nicht, dass es ein dependency-Problem, weil mein dllTest.dll ist nur ein einfacher test, und es enthält nur eine einfache Funktion "add".
Oder könnten nicht auch andere Ursachen?
Danke für die Hilfe.
- Könnte es sein, einen x86 vs x64 Problem? Auch, würde ich laufen dependency walker auf Sie es und stellen Sie sicher, dass die DLL fehlte nicht eine Ihrer Abhängigkeiten (aber das ist insgesamt stab in the dark).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist, dass Ihr C++ - DLL erfordert, die CRT-Bibliotheken installiert werden, um zu arbeiten. Den Fett gedruckten Teil der Fehlermeldung ist, was gibt Ihnen den Tipp:
Erklärt, warum alles in Ordnung ist, auf Ihre Entwicklung Maschine-Sie sind bereits dort installiert, weil Sie installiert haben, die mit Ihren Entwicklungs-tools und—warum es nicht funktioniert auf den Produktions-server, die nicht über die CRT-redistributables installiert.
Müssen Sie den download des entsprechenden redistributable package für die version von Visual Studio, die Sie kompiliert die DLL mit. Zum Beispiel, wenn Sie Visual Studio 2010 verwenden, können Sie die download-version 10 des CRT redistributable hier.
Alternativ können Sie kompilieren Sie die DLL mit runtime-Bibliotheken statisch verknüpft. Um das zu tun, ändern Sie Ihre Projekt-Eigenschaften zu werfen, die
/MT
Schalter anstelle des/MD
—(Sie finden es in der Benutzeroberfläche unter "Configuration Properties" -> "C/C++" -> "Code Generation" -> "Runtime Library").