共计 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();
}
正文完