Java调用明华RF读写器DLL文件的方法

首先jdk必须得是32位的,IDE也必须是32位的(我用的idea,所以为了使用32位的,下载了2018年1月版本的)。

明华RF读写器演示文件提供了一份名为mwrf32.dll的动态链接库文件

java如果想要调用的话,就必须使用JNI或者JNA的方式,毕竟跨语言了

首先在pom.xml文件中空白地方,右键选择Dependency,在里面搜索jna,选择jna:5.4.0或者jna-platform 回车 导入依赖。

 

依赖导入成功后

创建一个文件夹取名为impl

在其中创建接口名为Connect 继承 Library

public interface Connect extends Library
{
    Connect jihiseaDLL = Native.loadLibrary("mwrf32.dll",Connect.class);
    int rf_init(int port,int baud);//对mwrf32.dll中需要使用的rf_init函数进行声明
}

创建ConnectImpl类引入Connect接口。

public class ConnectImpl implements Connect {
    public int rf_init(int port,int baud) {
        int icdev = jihiseaDLL.rf_init(0,9600);//设置端口号和波特率然后初始化端口
        return icdev;
    }
}

这样之后就可以调用了,完成了对读写器的初始化。

ConnectImpl systeminit = new ConnectImpl();//在这里对全局初始化icdev
    int icdev = systeminit.rf_init(0,9600);

电脑插上读写器之后,System.out.println返回一下icdev之后查看是否成功

原文地址:https://www.cnblogs.com/Hexiaobin/p/12090423.html

时间: 2024-10-12 07:33:12

Java调用明华RF读写器DLL文件的方法的相关文章

在VS2017上使用C#调用非托管C++生成的DLL文件(图文讲解)

原文:在VS2010上使用C#调用非托管C++生成的DLL文件(图文讲解) 背景 在项目过程中,有时候你需要调用非C#编写的DLL文件,尤其在使用一些第三方通讯组件的时候,通过C#来开发应用软件时,就需要利用DllImport特性进行方法调用.本篇文章将引导你快速理解这个调用的过程. 步骤 1. 创建一个CSharpInvokeCPP的解决方案: 2. 创建一个C++的动态库项目 CSharpInvokeCPP.CPPDemo: 3. 在Windows桌面项目中,选择“动态链接库DLL”,其他按

无法删除DLL文件解决方法(转)

无法删除DLL文件解决方法(转) 手动解决dll文件无法删除的终极方法 手动解决dll文件无法删除的终极方法 相信大家都遇见过:在删除一些软件的时候弹出某某文件正在运行或磁盘写保护不能删除这样的报错提示吧.而常常删除不掉的都一些后缀为.dll的文件.到底这个dll文件是什么文件,如何才能知道是哪些程序在调用这个dll文件呢? [基础理论]dll文件英文名称为Dynamic Linking Library,以下简称dll,中文名字"动态链接程序库"文件.在Windows中,许多应用程序并

WAMP安装提示缺少 msvcr100.dll文件解决方法

WAMP安装提示缺少wamp msvcr100.dll文件解决方法 因为wamp基于vs c++2010开发,需要提前安装这个组件才可以正常运行 微软官方组件下载地址: 32位:http://www.microsoft.com/download/en/details.aspx?id=8328 64位:http://www.microsoft.com/download/en/details.aspx?id=13523 最新版WAMP可能需要安装vs c++ 2012 http://www.micr

在VS2010上使用C#调用非托管C++生成的DLL文件

背景 在项目过程中,有时候你需要调用非C#编写的DLL文件,尤其在使用一些第三方通讯组件的时候,通过C#来开发应用软件时,就需要利用DllImport特性进行方法调用.本篇文章将引导你快速理解这个调用的过程. 步骤 1. 创建一个CSharpInvokeCPP的解决方案: 2. 创建一个C++的动态库项目: 3. 在应用程序设置中,选择“DLL”,其他按照默认选项: 最后点击完成,得到如图所示项目: 我们可以看到这里有一些文件,其中dllmain.cpp作为定义DLL应用程序的入口点,它的作用跟

在VS2010上使用C#调用非托管C++生成的DLL文件(图文讲解)

背景 在项目过程中,有时候你需要调用非C#编写的DLL文件,尤其在使用一些第三方通讯组件的时候,通过C#来开发应用软件时,就需要利用DllImport特性进行方法调用.本篇文章将引导你快速理解这个调用的过程. 步骤 1. 创建一个CSharpInvokeCPP的解决方案: 2. 创建一个C++的动态库项目: 3. 在应用程序设置中,选择“DLL”,其他按照默认选项: 最后点击完成,得到如图所示项目: 我们可以看到这里有一些文件,其中dllmain.cpp作为定义DLL应用程序的入口点,它的作用跟

使用Visual Studio将C#生成DLL文件的方法

1.命令方式 打开Visual Studio安装目录下的开发人员命令提示 译 File.cs 以产生 File.exe csc File.cs 编译 File.cs 以产生 File.dll csc /target:library File.cs 编译 File.cs 在该目录下产生一个对应名字的.dll文件csc /out:My.exe File.cs 通过使用优化和定义 DEBUG 符号,编译当前目录中所有的 C# 文件.输出为 File2.exe csc /define:DEBUG /op

VC2010 利用 def 文件生成 dll 文件的方法

近期有个需求,要生成一个dll 文件.文件里的函数都是採用 stdcall 函数调用约定,可是不希望函数名被修饰(add 被修饰成 [email protected]). 这时就要用def 文件了. 比方我有以下两个函数: extern "C" int _stdcall add(int a, int b) { return a + b; } extern "C" int _stdcall sub(int a, int b) { return a - b; } def

VC2010 利用 def 文件生成 dll 文件的方法 转载

最近有个需求,要生成一个dll 文件,文件中的函数都是采用 stdcall 函数调用约定,但是不希望函数名被修饰(add 被修饰成 [email protected]).这时就要用def 文件了. 比如我有下面两个函数: [cpp] view plain copy extern "C" int  _stdcall add(int a, int b) { return a + b; } extern "C" int  _stdcall sub(int a, int b

log4j配置文件及java调用 每个级别输出到不同的文件2

log4j.rootLogger=debug,stdout,info,debug,error log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Threshold=DEBUG log4j.appender.stdout.Target=System.err log4j.appender.CONSOLE.ImmediateFlush=true log4j.appender.stdout.layou