动态链接库dll文件的使用

dll文件一般是在windows平台使用,由c/c++编译后的二进制代码,使用反向编译可能能得到原代码,通过viewdll.exe(一个公司的软件,肯定有其他软件),利用这些工具可以查看其中的函数。c#开发的dll文件可以通过微软reflector查看其中的源代码(一般可以)。

下面简单的总结c#和java怎么使用c语言编写的dll文件,一般c语言编写dll文件时为了多平台的使用。


c#使用的例子,System.Runtime.InteropServices,System.Runtime.CompilerServices是重要的两个类。 [MethodImpl(MethodImplOptions.ForwardRef), DllImport("rfid.dll", CallingConvention = CallingConvention.Cdecl)] //dll文件放入项目bin中,或者调用绝对路径

       protected static extern unsafe int RFID_Open(uint* pHandle, uint flags); //调用的方法名


java调用dll的方法较多,但是都是通过jar包调用dll文件,例如JNI, Jawin, Jacob,Jnative。下面以Jnative为例,

System.loadLibrary("rfid");                      //装载dll文件,注意路径
JNative jnative = new JNative("rfid","RFID_RadioOpen");  //使用rfid_radioOpen方法
jnative.setRetVal(Type.INT);             //设置返回值类型
jnative.setParameter(0,pointer);     //设置参数

jnative.setParameter(1,0);
jnative.invoke();                                 //调用方法


一般c语言编写的dll文件方法,参数及返回类型中存在指针类型,因此c#和java使用dll方法时,要处理指针的问题,例如c#中地址作为参数可用ref参数。java语言的设计初衷只是避免地址和指针的使用,因此使用dll文件中的方法较为复杂。

c#和java语言是面向对象语言,因此在使用c语言的dll库时,一般要经过封装成类后使用。


这是本人第一篇学习经验的总结,以后会多多努力,成为一个习惯并且不断的提高自己专业知识。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RFID 标签 读写操作 DLL SDK 开发指南 V3.5 SDK开发指南 本SDK 包是公司为方便用户开发应用程序而开发的软件开发包。 SDK 以动态链接库文件 形式提供给用户使用。 用户使用本公司系列读写器进行用户应用软件开发时,根据本公司提供的SDK 开发包, 用户可以高效、正确地完成DRF 系列读写器应用软件的开发。 SDK 支持VC、 VB、 C#、 VB.NET、 C++ Builder 和Delphi 的开发。 使用函数注意事项: 1.对标签操作时(包括读标签,写标签),最好在主从模式下使用, 因为读写器 UART 通讯是半双工的,定 时模式下,此时读卡器定时读标签并上传数据,这时容易跟上位机发送的命令冲突而造成读取成功率下降, 如果要在定时模式下使用的话,最好先发送停读标签命令,再来操作。此时如若要恢复到定时模式,要发 送复位读头命令以再次进入到定时模式。 2.如果要读单标签, 使用我们的 DEMO 软件,到参数设置那里把读写器首先要设置到单标签模式。 3.如果要读多标签, 使用我们的 DEMO 软件,到参数设置那里把读写器首先要设置到多标签模式。 1、 OpenComm 函数原型: HANDLE OpenComm(int portNo); 功能说明: 打开串口。 返回值: 成功时返回串口句柄,失败时返回 INVALID_HANDLE_VALUE(-1) 参数: ●——portNo: 串口号 调用例程: HANDLE hCom = OpenComm(1); // 打开串口 1 if(hCom != INVALID_HANDLE_VALUE) AfxMessageBox(“打开串口成功!” ); else AfxMessageBox(“打开串口失败!” );
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值