自定义函数中如何调用DLL文件?

因业务需要,需要调用DLL文件,参考网上的文件与方法,写了如下代码:

package com.fr.function;import com.fr.script.AbstractFunction;import com.sun.jna.Library;import com.sun.jna.Native;public class geth extends AbstractFunction {  public interface seuif97 extends Library { //cdecl call调用约定时为Library  seuif97 INSTANCE = (seuif97)Native.loadLibrary(System.getProperty("user.dir")+"/dll/SEUIF97.dll",seuif97.class);  public double seupt(double a,double b,int c);       } public Object run(Object[] args) {double S1=Double.parseDouble(args[0].toString());double S2=Double.parseDouble(args[1].toString());double h=seuif97.INSTANCE.seupt(S1,S2,4);return h;}public static void main(String[] args) throws Exception { Object s11=9.43; Object s21=533.08; double s1=Double.parseDouble(s11.toString()); double s2=Double.parseDouble(s21.toString()); try { double h=seuif97.INSTANCE.seupt(s1,s2,4); System.out.println(h); }catch(Exception e){  System.out.println( e.getMessage()); } }}

 

最后提示:

java.lang.NoClassDefFoundError: Could not initialize class com.fr.function.seuif97 at com.fr.function.geth.run(geth.java:18) at com.fr.script.AbstractFunction.tryRun(AbstractFunction.java) at com.fr.script.AbstractFunction.evalExpression(AbstractFunction.java) at com.fr.parser.FunctionCall.eval(FunctionCall.java) at com.fr.script.Calculator.eval(Calculator.java) at com.fr.stable.script.Expression.eval(Expression.java:35) at com.fr.script.Calculator.evalString(Calculator.java) at com.fr.script.Calculator.eval(Calculator.java) at com.fr.script.Calculator.evalValue(Calculator.java) at com.fr.stable.AbstractFormulaProvider.evalValue(AbstractFormulaProvider.java)

 

求怎么处理?

原贴:

自定义函数中如何调用DLL文件?-帆软社区 (fanruan.com)

FineReport yzmpKPp58487390 发布于 2022-6-19 12:03 (编辑于 2022-6-19 12:06)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
yzmpKPp58487390Lv3见习互助
发布于2022-6-23 07:58

重写代码

最佳回答
0
用户a8068717Lv4初级互助
发布于2022-6-19 22:49
function是被调用,应该有return值,而且不应该有main,感觉你用function不太合适
  • 0关注人数
  • 383浏览人数
  • 最后回答于:2022-6-23 07:58
    请选择关闭问题的原因
    确定 取消
    返回顶部