__stdcall 与 JNR
Posted
技术标签:
【中文标题】__stdcall 与 JNR【英文标题】:__stdcall with JNR 【发布时间】:2016-06-22 12:27:30 【问题描述】:我正在使用 JNR 并尝试调用 __stdcall
函数。我已经尝试使用stdcall()
约定加载库:
mTemplateApi = LibraryLoader.create(FPTemplateAPI.class).stdcall().load("FPTemplateAPI");
并尝试用@StdCall
注释方法。
public interface FPTemplateAP
@StdCall
Pointer CreateTemplateImage(@In ByteBuffer aTemplate,
@Out IntByReference aWidth,
@Out IntByReference aHeight,
@In boolean aColor);
结果当我尝试调用方法时出现以下错误:
Exception in thread "main" java.lang.UnsatisfiedLinkError: The operation completed successfully.
at jnr.ffi.provider.jffi.AsmRuntime.newUnsatisifiedLinkError(AsmRuntime.java:40)
【问题讨论】:
顺便在JNR github上发了issuegithub.com/jnr/jnr-ffi/issues/65 【参考方案1】:现在我创建了另一个 dll,它委托给 __stdcall
dll,但使用 __cdecl
,它非常适合我。
【讨论】:
以上是关于__stdcall 与 JNR的主要内容,如果未能解决你的问题,请参考以下文章