JNI可以让我们在java代码中调用本地库的功能。
revit二次开发中遇到的问题
下面记录一下JNI简单的使用方法
RevitAPIUI.dll 只能 Native Library 中执行; 脱离了Native Library,API是跑不起来的 。
- 创建java端接口
检查程序流程:登录,配置,启动revit。
在启动revit之前不能执行RevitAPI.dll和RevitAPIUI.dll的相关方法,
1 public class JNIIterface { 2 3 // 导入最终生成的dll文件 4 static { 5 System.loadLibrary("JNIDemo"); 6 } 7 8 // 声明dll文件中实现的接口 9 public native int MyMethod();10 11 public native int add(int x, int y);12 }
最后发现异常捕获, MessageShow.Show(e);封闭的方法引用的RevitAPIUI中的内容。
2. 生成接口对应的C的头文件
删除或更换方法解决问题。
上面创建的JNIIterface类,JNIIterface .class文件的路径:JNIDemobinbaseJNIIterface .class
在工程目录下的bin目录下执行命令:javah -classpath . -jni base.JNIIterface
然后会在JNIDemobin目录下生成base_JNIIterface.h文件
3.使用visual studio编写接口的实现
创建C工程,具体步骤如下:
第一步:
第二步:
第三部:
导入需要的头文件
将上面第二步生成的头文件,以及jdk根目录下include目录下的jni.h和
include的win32目录下的jni_md.h文件拷贝到工程目录下(在创建的工程上面右键,然后点击倒数第二项就可以打开)
创建功能实现文件
本文由澳门新葡亰1495app发布于网络技术,转载请注明出处:未能加载文件或程序集“ RevitAPIUI.dll”