我要调用的dll方法,但他们的名字是这样的_setParameterX @ 12和_getParameterX @ 20采用Java本机访问。 我怎样才能正确地使用FunctionMapper或StdCallFunctionMapper? 我如何调用这些功能呢? 南国防军文档是有点模糊了我。
Answer 1:
这些功能使用stdcall调用约定。 后缀指示的堆栈中的传入参数的大小。
您应该使用StdCallFunctionMapper
自动生成相应的映射。 创建类似于那些在使用的选项W32API选项 (功能映射器有自动选择为W32 API函数-W或-A后缀)。 通过新的选项映射到您的调用Native.loadLibrary
。
此外,一定要实现StdCallLibrary
接口,这样调用函数时相应的调用约定使用。
文章来源: how to call methods with leading underscore and traling @ in JNA