VB.NET Unable to load DLL Das angegebene Modul konnte nicht gefunden werden. wenn dllimport
Ich bin das hinzufügen von VC++ lib in mein VB .Net-Programm benutzen z.B.:
<DllImport("KMpeg4.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Shared Function KOpenInterface() As System.IntPtr
End Function
Habe ich zur Laufzeit den Fehler:
Unable to load DLL 'KMpeg4.dll': Das angegebene Modul konnte nicht gefunden werden. (Ausnahme von HRESULT: 0x8007007E)
Ich habe diese lib überall, auch system32
noch kein Glück, was bedeutet, es fehlen abhängigen lib von KMpeg4.dll
.
So, ich habe Dependency walker, die mir das fehlende lib:
API-MS-WIN-CORE-COM-L1-1-0.DLL API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL API-MS-WIN-CORE-WINRT-L1-1-0.DLL API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL API-MS-WIN-SHCORE-SCALING-L1-1-0.DLL DCOMP.DLL GPSVC.DLL IESHIMS.DLL
und die schlechten lnking Funktion:
c:\windows\system32\API-MS-WIN-CORE-THREADPOOL-L1-1-0.DLL c:\windows\system32\OLE32.DLL c:\windows\system32\DWMAPI.DLL c:\windows\system32\IEFRAME.DLL c:\windows\system32\IMM32.DLL c:\windows\system32\MFPLAT.DLL c:\windows\system32\NDFAPI.DLL c:\windows\system32\USERENV.DLL c:\windows\system32\UXTHEME.DLL
dependency walker gibt den folgenden Fehler:
Warnung: mindestens ein delay-load dependency Modul wurde nicht gefunden.
Warnung: mindestens ein Modul verfügt über einen ungelösten Einfuhr aufgrund einer fehlenden export-Funktion in einem delay-load dependent module.
Habe ich bereits die Installation von Microsoft VC++ 2005,2008,2010 x86 und x64 und .Net framework 4.
Als auch ich versuchen zu sehen, wenn die KMpeg4.dll
popup mit sysinternal process monitor, aber es wird nicht geladen KMpeg4.dll
befor das Programm die Fehler Ausnahme
Irgendwelche Ideen aus dem Paket die lib aus?
oder alternativ, wie dieses problem zu umgehen?
- Welche Windows version benutzt du und welche Windows-version war die KMpeg4.dll gedacht für? Von den Namen der Abhängigkeiten, es sieht aus wie die KMpeg4 gemeint ist, für Windows 8 RT. Sind Sie mit Windows 7?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dependency Walker ist nicht hilfreich, um dieses problem zu diagnostizieren, können DLLs wie diese finden sich erst zur Laufzeit. Kopieren in system32 ist in der Regel die sledge-hammer-Lösung. Außer auf einem 64-bit-version von Windows mit Ihrem Projekt die Plattform Ziel gesetzt x86, sehr wahrscheinlich in diesem Fall, da ist dies sicherlich eine 32-bit-DLL, die Sie dann brauchen, um es in hammer c:\windows\syswow64.
Aber nicht tun, Sie müssen nur sicherstellen, dass die DLL im selben Verzeichnis wie das Projekt EXE. Beste Weg, dies zu tun:
Wieder aufzubauen und Sie haben nun eine Kopie der DLL in der richtigen Stelle. Vergessen Sie nicht, stellen es zusammen mit Ihrem Projekt-Dateien und vergessen Sie nicht, die runtime-Unterstützung DLL, müssen Sie möglicherweise auf Ihrem Computer eines Benutzers.