我必须在 dll 中调用方法,但它们的名称类似于使用 Java Native Access 的 _setParameterX@12 和 _getParameterX@20。如何正确使用 FunctionMapper 或 StdCallFunctionMapper?如何调用这些函数?jna 文档对我来说有点模糊。
问问题
222 次
1 回答
1
这些函数使用 stdcall 调用约定。后缀表示堆栈上传入参数的大小。
您应该使用StdCallFunctionMapper
来自动生成适当的映射。创建类似于W32API 选项中使用的选项(那里的函数映射器会自动为 W32 API 函数选择 -W 或 -A 后缀)。将您的新选项映射传递给您的Native.loadLibrary
.
此外,确保实现StdCallLibrary
接口,以便在调用函数时使用适当的调用约定。
于 2012-09-25T13:24:29.583 回答