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

342次阅读
没有评论

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

正文完
 0
flames
版权声明:本站原创文章,由 flames 于2024-01-03发表,共计512字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)