Tag: .Net

C# 调用动态链接库

C# 调用动态链接库

C#调用动态链接库主要是通过DllImport来实现的。 1、在调用DLL的CS文件中引入 using System.Runtime.InteropServices; 2、将DLL拷贝至工程目录bin下的Debug或者Release文件夹内。 3、声明调用函数,以打开磁卡读写器为例: /* 丛指定的端口打开磁卡读写机 */ [DllImport(“HCE300_API.dll”, EntryPoint = “HCE300_Open”, CharSet = CharSet.Auto, SetLastError = true)] public static extern int init(int ComPort); DllImport 指定要动态调用的DLL位置名称 EntryPoint 指定DLL内部函数名 CharSet 说明内部数据返回编码 SetLastError 确定在函数返回前是否调用Win32的SetLastError 下面是对应于Dll函数的自定义函数声明,一定要保证参数列表一致。 如果再DllImport中指定ExactSpelling=true,函数名要与EntryPoint保持一致,指定为false,可以自定义函数名。 4、外部函数就可以直接通过init函数调用Dll内部的封装函数了。 注意: Dll函数的参数列表中如果有指针类型的参数,那么工程必须是非线程安全的。示例如下: