我使用JNA是为了在我的Java应用程序中使用C++库。我正在使用Java中的一个接口来使用这些函数。该函数在C++中使用三个参数:无符号整型、常量字符*和长整型*。JNA在Java中实现字符串(根据它们的文档),以在char*中传递。同样,它使用long[]传入一个长*。然而,我对我应该为无符号int传递的类型感到困惑。传入的char*表示文件的名称,无论我使用什么类型作为第一个参数,它似乎都无法识别该文件。此外,最后一个long类型实际上在函数执行后返回一个值。如果我使用short或int类型作为第一个参数,这个数字似乎是正确的,但是,如果我使用long类型作为第一个参数,它是不正确的。有人能帮上忙吗?
举个例子,下面是我目前在C++中作为接口原型的实际原型:
int JrConnect(unsigned int id, const char* config_file, long* handle);
public int JrConnect(int[] id, String[] config_file, long[] handle);
发布于 2011-04-11 20:44:12
使用JNA的IntByReference。
https://stackoverflow.com/questions/5627307
复制