jeudi 2 avril 2015

DLL-Funktion: Unsupported Argument

Hallo zusammen,



ich habe ein Problem mit dem Aufruf einer DLL-Funktion aus einem Java-Programm heraus.

Laut Dokumentation erwartet die DLL für die Funktion BCSetTextA folgende Parameter:

- t_BarCode *pBarCode

- LPCSTR szText

- LONG nLen



Ich verwende JNA.





Mein Interface sieht wie folgt aus:


Java Code:






  1. public interface tecitdll extends Library



  2. {



  3. tecitdll INSTANCE = (tecitdll) Native.loadLibrary((Platform.isWindows() ? "TBarCode11_x64" : "c"), tecitdll.class);



  4. void BCLicenseMeA(String a, int b, int c, String d, int e);



  5. void BCSetTextA(tecitdll pointer, String text, int laenge);



  6. void BCSetBCType(tecitdll pointer, String eBC_2OF5IL);



  7. void BCBitmapToFileA(tecitdll pointer, String pfad, Rectangle rechteck);



  8. }











Die DLL habe ich so instanziert:


Java Code:






  1. tecitdll barcode = tecitdll.INSTANCE;











und diesen Barcode übergebe ich als ersten Parameter:


Java Code:






  1. barcode.BCSetTextA(barcode, strBarcode, strBarcode.length());











Der Aufruf beschert mir dann diese Fehlermeldung:


Code:



Unsupported argument type com.sun.proxy.$Proxy0 at parameter 0 of function BCSetTextA




Die Dokumentation zur DLL findet ihr hier:

TEC-IT TBarCode Library 11: Barcode Data





Ich hoffe auf baldige Hilfe



Vielen Dank im Voraus





DLL-Funktion: Unsupported Argument

0 commentaires:

Enregistrer un commentaire