2

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

4

1 回答 1

1

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

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

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

于 2012-09-25T13:24:29.583 回答