2016-06-22 19 views
0

Ich benutze JNR und versuchen, __stdcall Funktion aufrufen. Ich habe schon zu laden Bibliothek stdcall() Konvention versucht:__stdcall mit JNR

mTemplateApi = LibraryLoader.create(FPTemplateAPI.class).stdcall().load("FPTemplateAPI"); 

und versuchte Methode mit @StdCall zu annotieren.

public interface FPTemplateAP 
{ 
    @StdCall 
    Pointer CreateTemplateImage(@In ByteBuffer aTemplate, 
           @Out IntByReference aWidth, 
           @Out IntByReference aHeight, 
           @In boolean aColor); 

} 

Als Ergebnis erhalte ich die folgende Fehlermeldung, wenn ich versuche, Methode aufzurufen:

Exception in thread "main" java.lang.UnsatisfiedLinkError: The operation completed successfully. 

at jnr.ffi.provider.jffi.AsmRuntime.newUnsatisifiedLinkError(AsmRuntime.java:40) 
+0

Ich habe Ausgabe auf JNR github übrigens https://github.com/jnr/jnr-ffi/issues/65 gepostet – goto1134

Antwort

0

Vorerst habe ich eine andere DLL, die Delegierten __stdcall dll, sondern nutzt __cdecl, und es funktioniert perfekt für mich.