共计 512 个字符,预计需要花费 2 分钟才能阅读完成。
当我们调用第三方 dll 时 一般会提供 32 位 64 位两种 dll 来供不同系统使用
实现方法有很多种, 下面写一个我觉得比较简单快捷的例子:
先将 2 个 dll 分别放到 Debug 目录下 x64 以及 x86 文件夹
目录结构如下:
|-- x64
|-- demo.dll
|-- x86
|-- demo.dll
在声明 dll 类初始化时通过 LoadLibraryA 注入 dll
class TSCLIB_DLL
{static TSCLIB_DLL()
{
var dllFile = Environment.Is64BitProcess ? "\\x64\\TSCLIB.dll" : "\\x86\\TSCLIB.dll";
LoadLibraryA(Environment.CurrentDirectory + dllFile);
}
[DllImport("kernel32")]
private static extern IntPtr LoadLibraryA([MarshalAs(UnmanagedType.LPStr)] string fileName);
[DllImport("TSCLIB.dll", EntryPoint = "about")]
public static extern int about();}
正文完