如何在JNA中调用前导下划线和尾随@的方法

时间:2012-09-25 07:49:40

标签: java jna

我必须在dll中调用方法,但它们的名称与使用Java Native Access的_setParameterX @ 12和_getParameterX @ 20类似。如何正确使用FunctionMapper或StdCallFunctionMapper?我如何调用这些功能? jna文档对我来说有点模糊。

1 个答案:

答案 0 :(得分:1)

这些函数使用stdcall调用约定。后缀表示堆栈上传入参数的大小。

您应该使用StdCallFunctionMapper自动生成适当的映射。创建类似于W32API options中使用的选项(函数映射器会自动为W32 API函数选择-W或-A后缀)。将新的选项地图传递给Native.loadLibrary的调用。

此外,请确保实现StdCallLibrary接口,以便在调用函数时使用适当的调用约定。