1

我有一个Foo.dll要加载到进程空间中的 DLL。此 DLL 是本机的且非托管的。我还有一个静态类NativeMethods,其中包含 的函数委托LoadLibraryGetProcAddress并且FreeLibraryKernel32.dll. 这些工作正常,因为我在尝试加载时可以获得指针Kernel32.dll

我的问题在于,在我的 bin 文件夹中,我设置了一个名为的目录,该目录modules将包含我所有的非托管 Dll。当我尝试Foo从该目录加载时,该LoadLibrary函数返回一个零指针,但是当我尝试从 bin 目录加载它时,我得到一个指向内存地址的指针。

我的 DLL 加载如下:

IntPtr dll = NativeMethods.LoadLibrary(Directory.GetCurrentDirectory() + "\\modules\\Foo.dll"); 
//dll = 0

IntPtr dll = NativeMethods.LoadLibrary(Directory.GetCurrentDirectory() + "\\Foo.dll");
//dll = address

任何有关此事的帮助将不胜感激!

4

0 回答 0