Mam bibliotekę dll z niezarządzanym kodem API C ++, którego potrzebuję w mojej aplikacji .NET 4.0. Ale przy każdej metodzie, którą próbuję załadować moją bibliotekę dll, pojawia się błąd:
Nie można załadować biblioteki DLL „MyOwn.dll”: nie można znaleźć określonego modułu. (Wyjątek od HRESULT: 0x8007007E)
Przeczytałem i wypróbowałem kilka rozwiązań, które znalazłem w Internecie. Nic nie działa..
Próbowałem użyć następujących metod:
[DllImport("MyOwn.dll", CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs((UnmanagedType.I4))]
public static extern Int32 MyProIni(string DBname, string DBuser_pass,
string WorkDirectory, ref StringBuilder ErrorMessage);
Kiedy próbowałem postępować zgodnie z tym artykułem i kiedy uruchamiam ten przykład (z pobranego kodu), działa on bez problemu (używany plik dll znajduje się w folderze bin / debug)
Skopiowałem mój plik dll (wraz ze wszystkimi plikami, od których zależy, do mojego folderu bin).
Próbowałem też tego podejścia, ale otrzymałem ten sam błąd:
[DllImportAttribute(MyOwnLibDllPath, EntryPoint="TMproIni")]
[return: MarshalAs(UnmanagedType.I4)]
public static extern int MyproIni(string DBname, string DBuser_pass,
string WorkDirectory, ref StringBuilder ErrorMessage);
Jakieś sugestie?