2012-09-20 15 views
5

Ich habe eine DLL, die ich in Windows7 (64bit OS) in 'Win32' Plattform gebaut habe. Leider, wenn ich diese DLL in C# -Code importieren, begegne ich:C++ Dll in Dependency Walker zeigt IESHIMS.dll und MSVCR110.dll

"

versucht wurde, ein Programm mit einem falschen Format HRESULT zu laden: 0x8007000B

" beobachtet

Wenn ich DependencyWalker für diese DLL verwendet, zeigt es IESHIMS.dll und MSVCR110.dll Abhängigkeit, die nicht gefunden werden konnte.

Woher kommen diese DLLs und warum hat meine erstellte DLL Abhängigkeit über diese beiden? Pl Hilfe, wie kann ich über das bekommen?

Hinweis: Ich habe x86-Plattform in meinem C# -Code verwendet.

+0

Es gibt einen sehr starken Hinweis, dass Sie nicht tatsächlich geschafft haben, die Plattform Ziel richtig einzustellen, 99,9% Quoten auf einem 64-Bit-Betriebssystem. Erhalten Sie eine zweite Meinung von dem Dienstprogramm Corflags.exe, führen Sie es von der Visual Studio-Eingabeaufforderung aus, und übergeben Sie den Pfad zu Ihrer EXE. Die 32BIT-Option muss 1 sein. –

+0

Ich löste dieses 0x8007000B mit einer App, die in 32 Bit ausgeführt wird, indem ich in dem Windows/syswov64-Ordner die MSVCR110.dll Version 64 mit der MSVCR110.dll 32-Bitversion änderte. (Vergessen Sie nicht, die 64 DLL zurückzusetzen, wenn Sie Ihre App ausgeführt haben) – JinSnow

Antwort

1

Stellen Sie sicher, dass Sie in den Eigenschaften Ihres C# -Projekts x86 für die Zielarchitektur ausgewählt haben.

+0

Ja. Das habe ich schon gemacht. habe den Beitrag oben bearbeitet. –

2

Sie haben wahrscheinlich nicht die C++ - Laufzeit installiert. Download it und installieren Sie es. Sie müssen ein wenig mit den Runtime-Versionen spielen. Es sind einige Versionen verfügbar. Dies wird Ihr MSVCR110.dll Problem beheben. Ich bin mir nicht sicher, warum die DLL-Abhängigkeit für eine IE-DLL zeigt.