JNA 函数调用 C dll

JNA Function call to C dll

本文关键字:dll 函数调用 JNA      更新时间:2023-10-16

我需要从我的java应用程序调用c dll(mycppdll.dll)。

CFUNCTIONSDLLCALLS int PASCAL SomeFunction(
      char *param1, char *param2,
      char *param3, char *param4,
      char *param5,
      int  *param6,
      int  *param7,
      int  *param8);

我有一个c程序像这样调用这个函数:

 char param1[256] = "";
 char param2[256] = "";
 char param3[256] = "";
 char param4[256] = "";
 char param5[256] = "";
 int param6;
 int param7;
 int param8[32];
ret = SomeFunction(param1,param2,param3,param4,param5, &param6, &param7, &param8[0]);

而且它工作正常。

在我的 char * Java 程序中,我使用 PointerByReference 和 int* 作为 IntegerByReference。我不知道我应该对最后一个参数使用什么。

我试图传递整数数组第 0 个索引的指针,整数数组第 0 个索引的指针的指针,int,IntByReference。

他们都没有工作。我正在得到

"java.lang.UnsatisfiedLinkError: 查找函数 'SomeFunction' 时出错: 找不到指定的过程。

请帮忙。提前致谢

似乎 SomeFunction 不是 dll 的一部分(或者它可能没有相同的参数)