c# 根据系统32,64位加载不同DLL

当我们调用第三方dll时 一般会提供32位 64位两种dll来供不同系统使用

实现方法有很多种,下面写一个我觉得比较简单快捷的例子:
先将2个dll分别放到Debug目录下x64以及x86文件夹
目录结构如下:

|-- x64
    |-- demo.dll
|-- x86
    |-- demo.dll

注意: 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();
}

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注