Unsatisfied Link Error

Stapf_JAVA

Mitglied
Hallo liebe Experten,
Ich möchte aus einem Java Programm heraus eine USB-TTL-Karte (=USBTTL24) ansprechen. Hierfür stellt der Hersteller (=Quancom) der Karte eine Bibliothek Qlib zur Verfügung. Als Schnittstelle soll eine Datei Qlib32.java dienen diese sieht wie folgt aus:

Java:
// 
package com.quancom.qlib32;

import java.lang.*;
import java.awt.*;

public class qlib32 {


/*
**	Debugging-Konstanten fuer QAPIExt...-Funktionen
*/

public static final int DBG_NONE = 0;		/* nichts debuggen		*/
public static final int DBG_NULL_PTR = 1;	/* NULL-Pointer pruefen		*/
public static final int DBG_FUNC_DEFINED = 2;	/* gueltige Funktionen pruefen	*/
public static final int DBG_VALID_CARD_ID = 4;	/* gueltige Karten-ID pruefen	*/
public static final int DBG_MAKE_LOG= 8;	/* Log-File erzeugen            */
public static final int DBG_FULL_DEBUG = 0xF;	/* alles pruefen und aufzeichnen*/

/*
**	general constants
*/

public static final int BUS_ISA	= 1;
public static final int BUS_PCI	= 2;
public static final int BUS_VLB	= 3;
public static final int BUS_PAR	= 4;
public static final int BUS_USB	= 5;
public static final int BUS_UNKNOWN = 6;

public static final int FEATURE_AD = 0x00000001; 		/*  Karte besitzt AD-Kanaele */
public static final int FEATURE_DA = 0x00000002; 		/*  Karte besitzt DA-Kanaele */
public static final int FEATURE_DI = 0x00000004; 		/*  Karte besitzt Digitaleingaenge */
public static final int FEATURE_DO = 0x00000008; 		/*  Karte besitzt Digitalausgaenge */
public static final int FEATURE_DX = 0x00000010;		/*  Karte besitzt beliebige DI/Os */
public static final int FEATURE_WD = 0x00000020;  		/*  Karte besitzt Watchdog */
public static final int FEATURE_CT = 0x00000040;  		/*  Karte besitzt Counter/Timer */
public static final int FEATURE_8253 = 0x00000080; 		/*  Karte besitzt 8253/54 */
public static final int FEATURE_8255 = 0x00000100; 		/*  Karte besitzt 8255 */
public static final int FEATURE_WD_ST = 0x00000200;  		/*  Karte besitzt Watchdog Status Register */
public static final int FEATURE_READSTRING = 0x00000400;
public static final int FEATURE_WRITESTRING = 0x00000800;					
public static final int LIST_DEFAULT_VALUE = 0x80000000;  	/* Resourcenwert ist Defaultwert */
public static final int LIST_RESOURCE_NOT_USED = 0x40000000; 	/* Resource wird nicht verwendet */
public static final int LIST_AUTO_RESOURCE = 0x20000000; 	/* Resourcenwert wird auto. vergeben (PCI) */
public static final int LIST_EOL = 0x00000000;			/* Ende der Liste */

public static final int VC_QIS = 2;                             /* Hersteller-ID: QUANCOM Informationssysteme GmbH */
public static final int VC_KOLTER = 3;                          /* Hersteller-ID: Kolter Electronic */

/*
**  Fehlercodes
*/

public static final int QAPI_ERROR_INVALID_CHANNEL = 0xffffff00;  /*  Parameter-Wert Channel unzulaessig */
public static final int QAPI_ERROR_AD_TIMEOUT = 0xffffff01;   /*  kein AD-Wert lesbar */

/*
**  Fehlermeldungen und Sprache ( mr. 17.04.2002 )
*/

public static final int QAPI_MESSAGES_ON = 0;
public static final int QAPI_MESSAGES_OFF = 1;


/*
**	Jobs
*/

public static final int JOB_READ_8255 = 0;
public static final int JOB_WRITE_8255 = 1;

public static final int JOB_ENABLE_WATCHDOG = 2;
public static final int JOB_DISABLE_WATCHDOG = 3;
public static final int JOB_RETRIGGER_WATCHDOG = 4;
public static final int JOB_STATUS_WATCHDOG = 72;
public static final int JOB_RELAYON_WATCHDOG = 93;

public static final int JOB_READ_8253 = 5;
public static final int JOB_WRITE_8253 = 6;

public static final int JOB_ENABLE_IRQ = 7;
public static final int JOB_DISABLE_IRQ = 8;
public static final int JOB_ENABLE_IRQ_A = 7;
public static final int JOB_DISABLE_IRQ_A = 8;
public static final int JOB_ENABLE_IRQ_B = 9;
public static final int JOB_DISABLE_IRQ_B = 10;

public static final int JOB_IOREAD_BYTE =  11;
public static final int JOB_IOREAD_WORD =  12;
public static final int JOB_IOREAD_LONG =  13;
public static final int JOB_IOWRITE_BYTE = 14;
public static final int JOB_IOWRITE_WORD = 15;
public static final int JOB_IOWRITE_LONG = 16;

public static final int JOB_RESET_IN_FFS = 17;
public static final int JOB_READ_IN_FFS = 18;
public static final int JOB_ENABLE_IN_FFS = 84;
public static final int JOB_DISABLE_IN_FFS = 89;

public static final int JOB_ENABLE_TIMEOUT = 19;
public static final int JOB_DISABLE_TIMEOUT = 20;
public static final int JOB_RESET_TIMEOUT_STATUS = 21;
public static final int JOB_READ_TIMEOUT_STATUS = 22;
public static final int JOB_SET_WATCHDOG_TIME = 24;

public static final int JOB_READ_DIP_SWITCH = 85;
public static final int JOB_SET_LED = 88;

public static final int JOB_WDOG3_INITIALIZE = 23;
public static final int JOB_WDOG3_SET_WATCHDOG_TIME = 24;
public static final int JOB_WDOG3_SET_RELAIS_TIME = 25;
public static final int JOB_WDOG3_SET_REPEAT_TIME = 26;
public static final int JOB_WDOG3_RELAIS_INVERSION = 27;

/* mr 20.10.2000 */

public static final int JOB_DOWNLOAD = 28;

/* mr 22.10.2000 Jobs für UNITIMER */

public static final int JOB_UNITIMER_RELAIS1 = 29;
public static final int JOB_UNITIMER_RELAIS2 = 30;
public static final int JOB_UNITIMER_OUT0 = 31;
public static final int JOB_UNITIMER_OUT1 = 32;
public static final int JOB_UNITIMER_OUT2 = 33;
public static final int JOB_UNITIMER_OUT3 = 34;
public static final int JOB_UNITIMER_OUT4 = 35;
public static final int JOB_UNITIMER_OUT5 = 36;
public static final int JOB_UNITIMER_OUT6 = 37;
public static final int JOB_UNITIMER_OUT7 = 38;	
public static final int JOB_UNITIMER_GETLCAREG = 39;
public static final int JOB_UNITIMER_SETLCAREG = 40;
public static final int JOB_UNITIMER_GETCNTA = 41;
public static final int JOB_UNITIMER_GETCNTB = 42;
public static final int JOB_UNITIMER_GETCNTAB =	43;	
public static final int JOB_UNITIMER_GETCTREG =	44;
public static final int JOB_UNITIMER_SETCTREG =	45;
public static final int JOB_UNITIMER_INITIALIZE = 46;
public static final int JOB_UNITIMER_SETCNTMODE = 47;
public static final int JOB_UNITIMER_UNIT7 = 48;

/* mr 27.11.2000 Jobs für PAR48IO */

public static final int JOB_PAR48IO_INPUT = 0;
public static final int JOB_PAR48IO_OUTPUT = 1;

public static final int JOB_PAR48IO_LATCH = 49;
public static final int JOB_PAR48IO_READCNT = 50;
public static final int JOB_PAR48IO_SETMODE = 51;
public static final int JOB_PAR48IO_WRITE = 52;
public static final int JOB_PAR48IO_READ = 54;

public static final int JOB_PAR48IO_RESET_TO_0 = 58;
public static final int JOB_PAR48IO_RESET_TO_1 = 59;
public static final int JOB_PAR48IO_IOMODE0_7 = 60;
public static final int JOB_PAR48IO_IOMODE00_07 = 60;
public static final int JOB_PAR48IO_IOMODE8_15 = 61;
public static final int JOB_PAR48IO_IOMODE08_15 = 61;
public static final int JOB_PAR48IO_IOMODE16_23 = 62;
public static final int JOB_PAR48IO_IOMODE24_31 = 63;
public static final int JOB_PAR48IO_IOMODE32_39 = 64;
public static final int JOB_PAR48IO_IOMODE40_47 = 65;

/* mr 29.11.2000 Jobs für OPTOLCA */
			
public static final int JOB_OPTOLCA_SETEXTRAMEMORY = 66;
public static final int JOB_OPTOLCA_GETEXTRAMEMORY = 67;
public static final int JOB_OPTOLCA_SM_START = 68;
public static final int JOB_OPTOLCA_SM_STOP = 69;
public static final int JOB_OPTOLCA_SM_SSR = 70;

/* mr 22.04.2002 Jobs für GPIB, PCIGPIB und USBGPIB */

public static final int JOB_REGW = 			73;
public static final int JOB_REGR = 			74;
public static final int JOB_READSRQ = 			75;
public static final int JOB_SERIALPOLL = 		76;
public static final int JOB_GTL = 			77;	
public static final int JOB_GET = 			78;
public static final int JOB_SDC = 			79;
public static final int JOB_LLO = 			80;	
public static final int JOB_DCL = 			81;
public static final int JOB_REN = 			90;
public static final int JOB_RESET = 			91;
public static final int JOB_TIMEOUT = 			92;
public static final int JOB_READ_TIMEOUT =		127;

/*  Jobs für PAR2DA Modul mr 03.06.2002 */

public static final int JOB_PAR2DA_ENABLE1 =      82;
public static final int JOB_PAR2DA_ENABLE2 =      83; 

/*  Jobs für schnellen Memory Zugriff mr 20.10.2002  */

public static final int JOB_FASTMEM_INIT = 		86; 
public static final int JOB_FASTMEM_RELEASE = 		87; 

/* mr 25.11.2002 Jobs für PCITTL32IO */

public static final int JOB_PCITTL32_INPUT = 		0;
public static final int JOB_PCITTL32_OUTPUT = 		1;
		
public static final int JOB_PCITTL32_IOMODE0_7 =	60;
public static final int JOB_PCITTL32_IOMODE00_07 = 	60;
public static final int JOB_PCITTL32_IOMODE8_15 =	61;
public static final int JOB_PCITTL32_IOMODE08_15 = 	61;
public static final int JOB_PCITTL32_IOMODE16_23 = 	62;
public static final int JOB_PCITTL32_IOMODE24_31 = 	63;
public static final int JOB_PCITTL32_IOMODE32_39 = 	64;
public static final int JOB_PCITTL32_IOMODE40_47 = 	65;

/* jobs für PCIEXT64 mr. 28.06.2004 */

public static final int JOB_PCIEXT64_READ_TEMPERATURE = 94;
public static final int JOB_PCIEXT64_ENABLE = 95;
public static final int JOB_PCIEXT64_DISABLE = 96;
public static final int JOB_PCIEXT64_CARD_DETECT_STATUS = 97;
public static final int JOB_PCIEXT64_RESET_ACTIVE = 98;
public static final int JOB_PCIEXT64_ACTIVE = 99;
public static final int JOB_PCIEXT64_PCI_CONFIGSPACE = 100;

/*  nächster job 101L              */

// Jobs für PCIWDOG3 & 4 mr. 27.09.2004

public static final int JOB_LOAD_WATCHDOG =				101;			
public static final int JOB_CLEAR_LOG =					102;								
public static final int JOB_READ_LOG =					103;											
public static final int JOB_TIME_SET =					104;											
public static final int JOB_TIME_GET =					105;								
public static final int JOB_SEND_SMS =					106;								
public static final int JOB_GOTO_IDLE =					107; 	
public static final int JOB_EEPROM_WRITE =				108;	
public static final int JOB_READ_DEFAULT_TIMEOUT =		109;
public static final int JOB_WRITE_DEFAULT_TIMEOUT =		110;
public static final int JOB_LOCK_DEVICE =				111;		
public static final int JOB_UNLOCK_DEVICE =				112;		
public static final int JOB_GETSTATUS =					113;		
public static final int JOB_GETSTATUS_STRING =			114;
public static final int JOB_SHUTDOWN =					115;
public static final int JOB_GETVERSION =				116;
public static final int JOB_IRQ_GET_DATA_RESULTCODE =	118;
public static final int JOB_IRQ_GET_DATA_EMAILADDRESS =	119;
public static final int JOB_IRQ_GET_DATA_EMAILTEXT =	120;
public static final int JOB_GET_EMAILTEXT =				121;
public static final int JOB_GET_EMAILADDRESS =			122;		
public static final int JOB_IRQ_GET_DATA_RESULTTYPE =	124;
public static final int JOB_GET_SHUTDOWNUSERABORTTIME = 125;
public static final int JOB_CANCEL_SHUTDOWN =			126;
public static final int JOB_READ_FLASH_MEMORY_BYTE =	128;
public static final int JOB_READ_FLASH_MEMORY_WORD =	129;
public static final int JOB_GET_PHASETEXT =				130;
public static final int JOB_READ_LOG_ENTRY =			131;
public static final int JOB_GET_PHASE =					132;
public static final int JOB_READ_WATCHDOG_TIMER =		133;
public static final int JOB_READ_RELAY_TIMER =			134;
public static final int JOB_READ_OPTOCOUPLER_INPUTS =	135;
public static final int JOB_READ_SMS_STATUS = 136;
public static final int JOB_READ_SMS_STATUS_STRING	=	137;
public static final int JOB_READ_TEMPERATURE_VALUES =	138;
public static final int JOB_READ_VOLTAGE_VALUES		=	139;

// Jobs für PCITTL64 mr. 23.05.2005

public static final int JOB_PCITTL64_INPUT			= 0;
public static final int JOB_PCITTL64_OUTPUT			= 1;

public static final int JOB_PCITTL64_IOMODE0_7		= 140;
public static final int JOB_PCITTL64_IOMODE8_15		= 141;
public static final int JOB_PCITTL64_IOMODE16_23	= 142;		
public static final int JOB_PCITTL64_IOMODE24_31	= 143;
public static final int JOB_PCITTL64_IOMODE32_39	= 144;
public static final int JOB_PCITTL64_IOMODE40_47	= 145;
public static final int JOB_PCITTL64_IOMODE48_55	= 146;
public static final int JOB_PCITTL64_IOMODE56_63	= 147;

// Jobs für USB-FLASH			

public static final int JOB_USB_FLASH_DEVICE		= 148;

// Jobs für PCIWDOG3 mr. 25.10.2005

public static final int JOB_SET_LOG_LEVEL			= 149;
public static final int JOB_GET_LOG_LEVEL			= 150;

// Jobs for USBAD8DAC2 mr. 18.11.2005

public static final int JOB_USBAD8DAC2_IOMODE0_7	= 151;
public static final int JOB_USBAD8DAC2_IOMODE8_15	= 152;
public static final int JOB_USBAD8DAC2_IOMODE16_23	= 153;

public static final int JOB_USBAD8DAC2_INPUT		= 0;
public static final int JOB_USBAD8DAC2_OUTPUT		= 1;

// Jobs for TTL ports  mr. 17.01.2005 ( DDR = Data Direction Register )
	
public static final int JOB_WRITE_DDR				= 154;
public static final int JOB_READ_DDR				= 155;

public static final int JOB_IOMODE0_7				= 156;
public static final int JOB_IOMODE8_15				= 157;
public static final int JOB_IOMODE16_23				= 158;		
public static final int JOB_IOMODE24_31				= 159;
public static final int JOB_IOMODE32_39				= 160;
public static final int JOB_IOMODE40_47				= 161;
public static final int JOB_IOMODE48_55				= 162;
public static final int JOB_IOMODE56_63				= 163;
public static final int JOB_IOMODE64_71				= 182;
public static final int JOB_IOMODE72_79				= 183;
public static final int JOB_IOMODE80_87				= 184;
public static final int JOB_IOMODE88_95				= 185;
public static final int JOB_IOMODE96_103			= 186;
public static final int JOB_IOMODE104_111			= 187;
public static final int JOB_IOMODE112_119			= 188;
public static final int JOB_IOMODE120_127			= 189;
	
public static final int JOB_INPUT					= 0;
public static final int JOB_OUTPUT					= 1;

public static final int JOB_USB_SET_FLASH_MODE		= 164;
public static final int JOB_USB_SET_FULLERASE		= 165;

// jobs for USBCPU mr 1.12.2008 

public static final int JOB_USBCPU_WRITEREG			= 190;
public static final int JOB_USBCPU_READREG			= 191;					
public static final int JOB_USBCPU_WRITEREGWORD		= 192;
public static final int JOB_USBCPU_READREGWORD		= 193;
public static final int JOB_USBCPU_WRITEREGLONG		= 194;
public static final int JOB_USBCPU_READREGLONG		= 195;

// jobs for USBCOUNTER mr 1.12.2008 

public static final int JOB_USBCOUNTER_LATCHCOUNTER			= 196;
public static final int JOB_USBCOUNTER_LATCHCOUNTERALL		= 197;
public static final int JOB_USBCOUNTER_CLEARCOUNTER			= 198;
public static final int JOB_USBCOUNTER_CLEARCOUNTERALL		= 199;
public static final int JOB_USBCOUNTER_SETMODE				= 200;
public static final int JOB_USBCOUNTER_SETCOMPAREVALUE		= 201;
public static final int JOB_USBCOUNTER_READCOUNTERLATCH		= 202;
public static final int JOB_USBCOUNTER_READLATCHDATAVALID	= 203;
public static final int JOB_USBCOUNTER_READINPUTCHANNELS	= 204;
public static final int JOB_USBCOUNTER_SETTTLMODE			= 205;


// next job 205L ! */

public static final int JOB_INVALID = 			0x4d414a41;


/*  List of error codes for function QAPIGetLastError()*/

public static final int  ERROR_NONE = 0; 
public static final int  ERROR_GETLASTERROR = 1;
public static final int  ERROR_WSAGETLASTERROR = 2;
public static final int  ERROR_QLIB_INTERNAL = 3;
public static final int  ERROR_QLIB_BUFFER_TO_SMALL = 4;
public static final int  ERROR_QLIB_CONNECTION  = 5;
public static final int  ERROR_QLIB_CONNECTION_TIMEOUT = 6;
public static final int  ERROR_QLIB_CONNECTION_LOGIN_FAILED = 7;
public static final int  ERROR_QLIB_CONNECTION_DISCONNECTED = 8;
public static final int  ERROR_QLIB_ILLEGAL_PARAMETER = 9;
public static final int  ERROR_EXCEPTION = 10;
public static final int  ERROR_LOADING_WINSOCK = 11;
public static final int  ERROR_QLIB_CARDID_NOT_VALID = 12;
public static final int  ERROR_QLIB_FUNCTION_NOT_SUPPORTED = 13;
public static final int  ERROR_GPIB_TIMEOUT = 14;
public static final int  ERROR_GPIB_ERR = 15;
public static final int  ERROR_QLIB_UNABLE_TO_LOAD_QMULTI = 16;
public static final int  ERROR_QLIB_QMULTI_HAS_WRONG_VERSION  = 17;
public static final int  ERROR_QLIB_QMULTI_DIRECTIO = 18;
public static final int  ERROR_QLIB_FASTMEM_MAP_FAILED = 19;
public static final int  ERROR_QLIB_FASTMEM_UNMAP_FAILED = 20;
public static final int  ERROR_QLIB_DEVICE_BUSY = 21;
public static final int  ERROR_QLIB_DEVICE_NOT_PRESENT = 22;
public static final int  ERROR_QLIB_DEVICE_CLOSED = 23;
public static final int  ERROR_QLIB_IRQ_DISABLED  = 24;
public static final int  ERROR_QLIB_IRQ_ALREADY_ENABLED = 25;
public static final int  ERROR_QLIB_IRQ_ALREADY_DISABLED = 26;
public static final int  ERROR_QLIB_IRQ_NOT_AVAILABLE = 27;
public static final int  ERROR_QLIB_TIMEOUT = 28;
public static final int  ERROR_QLIB_RESET_ERROR = 29;
public static final int  ERROR_QLIB_INVALID_DATA = 30;
public static final int  ERROR_INVALID_LOG_DATA = 31;
public static final int  ERROR_QLIB_FILE_NOT_FOUND = 32;
public static final int  ERROR_QLIB_FILE_HEX_FORMAT_REQUIRED = 33;
public static final int  ERROR_QLIB_WRITE_FLASH_FAILED = 34;
public static final int  ERROR_QLIB_VERIFY_FLASH_FAILED = 35;
public static final int  ERROR_QLIB_UNABLE_INITIALIZE_DEVICE = 36;
public static final int  ERROR_QLIB_NOT_SUPPORTED_IN_REMOTE_MODE = 37; 
public static final int  ERROR_QLIB_COUNTER_OVERFLOW = 38; 
public static final int  ERROR_QLIB_SIGNAL_OUT_OF_RANGE = 39;	  

public static final int DEFAULTGPIB = 			0x8000;


/*
**	Defines für Abwärtskompatibilität
*/

public static final int POPTOREL = POPTOREL16;
public static final int WATCHDOG1 = WATCHDOG;
public static final int WATCHDOG2 = WATCHDOG;
public static final int PWDOG1 = PWDOG;
public static final int PWDOG2 = PWDOG;
public static final int PWDOG2N = PWDOG;

public static final int WATCHDOG12 = WATCHDOG;
public static final int PWDOG12 = PWDOG;
public static final int USBWDOG	 = USBWDOG1;
	

public native	int QAPIVersion(int type);
public native	int QAPIInitialize(int para1, int para2, int para3, int para4);
public native	int QAPISetMessageBoxMode(int mode);
public native	void QAPIExtSetDebugLevel(int dbgval);
public native	void QAPIExtEnableIRQ(int cdl,int mode);
public native	int QAPIExtNumOfCards();
//public native	LPCARDDATAS  QAPIExtGetCardInfo(int cardnum);
//public native	int QAPIExtGetCardInfoEx(int cardnum,LPCARDDATAS lpcd);
//public native	void QAPIExtReleaseCardInfo(LPCARDDATAS lpcd);
public native	int QAPIExtOpenCard(int cardnum,int devnum);
public native	void QAPIExtCloseCard(int cdl);
public native	int QAPIExtReadAD(int cdl,int channel,int mode);
public native	void QAPIExtWriteDA(int cdl,int channel,int value,int mode);
public native	void QAPIExtLatchDA(int cdl);
public native	float QAPIExtConvertDWToVoltage(int cdl,int value,int mode);
public native	int QAPIExtConvertVoltageToDW(int cdl,float value,int mode);
public native	int QAPIExtReadDI1(int cdl,int channel,int mode);
public native	int QAPIExtReadDI8(int cdl,int channel,int mode);
public native	int QAPIExtReadDI16(int cdl,int channel,int mode);
public native	int QAPIExtReadDI32(int cdl,int channel,int mode);
public native	void QAPIExtWriteDO1(int cdl,int channel,int value,int mode);
public native	void QAPIExtWriteDO8(int cdl,int channel,int value,int mode);
public native	void QAPIExtWriteDO16(int cdl,int channel,int value,int mode);
public native	void QAPIExtWriteDO32(int cdl,int channel,int value,int mode);
public native	void QAPIExtWrite8255(int cdl,int chipnum,int reg,int value);
public native	int QAPIExtRead8255(int cdl,int chipnum,int reg);
public native	void QAPIExtWrite8253(int cdl,int chipnum,int reg,int value);
public native	int QAPIExtRead8253(int cdl,int chipnum,int reg);
public native	int QAPIExtWatchdog(int cdl,int job);
public native	int QAPIExtSpecial(int cdl,int jobcode,int para1,int para2);
public native	int QAPIExtReadString(int cdl, int device, String buffer, int maxsize, int mode);
public native	int QAPIExtWriteString(int cdl, int device, String buffer, int maxsize, int mode);
public native	int QAPIExtWriteStringEx(int cdl, int device, String buffer, int maxsize, int mode, int bEnableREN);
public native	int QAPINumOfCards();
//public native	LPCARDDATAS  QAPIGetCardInfo(int cardnum);
//public native	int	QAPIGetCardInfoEx(int cardnum,LPCARDDATAS lpcd);
public native	int	QAPIGetAD(int cardnum,int channel);
public native	float QAPIConvertDWToVoltage (int cardnum,int value, int mode);
public native	int	QAPIConvertVoltageToDW (int cardnum,float value, int mode);
public native	void QAPIPutDA(int cardnum,int channel,int value);
public native	int	QAPIGetDI(int cardnum,int channel);
public native	void QAPIPutDO(int cardnum,int channel,int value);
public native	int	QAPIRead8253(int cardnum,int reg);
public native	void QAPIWrite8253(int cardnum,int reg,int value);
public native	int	QAPIRead8255(int cardnum,int reg);
public native	void QAPIWrite8255(int cardnum,int reg,int value);
public native	int	QAPISpecial(int cardnum,int jobcode,int para1,int para2);
public native	int	QAPIReadString(int cardnum, int device, String buffer, int maxsize, int mode);
public native	int	QAPIWriteString(int cardnum, int device, String buffer, int maxsize, int mode);
public native	int	QAPIWriteStringEx(int cardnum, int device, String buffer, int maxsize, int mode, int bEnableREN);
public native	void QAPIWatchdogEnable();
public native	void QAPIWatchdogDisable();
public native	void QAPIWatchdogRetrigger();
public native	void QAPIWatchdogLoad();
public native  	int	QAPIWatchdogStatus();	
public native  	int	QAPIConnect(String  ip, int port, String  username, String  password, int timeout);
public native  	int	QAPIDisconnect();
public native  	int	QAPIGetLastError();
public native  	int	QAPIGetLastErrorCode();
public native  	String QAPIGetLastErrorString();
public native  	int	QAPIGetLastErrorStringEx(String  buffer, int buffersize);
public native  	int	QAPIWaitIRQ(int cardnum, int devnum);
public native  	int	QAPIGetConnectionMode(int nType, StringBuffer  buffer, int buffersize);

public native   int QAPISetupCounter(int cardnum, int counter, int mode, int reserved);
public native   int QAPIResetCounter(int cardnum, int counter, int reserved1, int reserved2);
public native   int QAPIReadCounter(int cardnum, int counter, int mode, int reserved2);
public native   int QAPIExtSetupCounter(int cdl, int counter, int mode, int reserved);
public native   int QAPIExtResetCounter(int cdl, int counter, int reserved1, int reserved2);
public native   int QAPIExtReadCounter(int cdl, int counter, int mode, int reserved2);



	static 	{
		System.loadLibrary("qlib32"); 	// win32: qlib32.dll                                               
		}
}

Sorry dass ich nicht gekürzt habe aber meine JAVA Kenntnisse sind nicht so ausgereift, dass ich einschätzen kann was wichtig ist. Nach meinen Recherchen spiel die letzte Zeile eine große Rolle für mein Problem. Ich soll nun ein statisches Objekt dieser Klasse erzeugen um die Funktionen und Konstanten der Schnittstelle benutzen zu können. Leider bekomme ich jedesmal eine
Code:
 Unsatisfied Link Error
wenn ich auf die Funktionen zugreifen möchte. Nun meine Frage:
Wo muss ich die Dateien Qlib32.dll und Qlib32ps.dll ablegen damit ich diese laden kann?? (Wurden mit der Qlib Installation ins Verzeichnis C:/Windows/System32 gelegt)
Müsste das Argument nicht "Qlib32.dll" oder "Qlib32" (Großbuchstabe) sein??
Noch zur Info. Als Entwicklungsumgebung benutze ich Netbeans (falls ich hier etwas umstellen kann)
Vielen Dank schon mal für eure Hilfe
 

Marco13

Top Contributor
Habe ich das richtig verstanden: Die Original Qlib32.dll liegt irgendwo rum, und du versuchst die (so wie sie ist) "in Java reinzuladen", um dann mit den (zu diesem Zweck?) als "native" deklarierten Methoden diese Funktionen aufzurufen? Das geht so nicht.
Das geht SO so nicht, dass es schon fast wieder geht :rolleyes: ;)

Wenn man mit Java eine DLL nutzen will, dann muss das eine speziell dafür erstellte DLL sein. Und wenn man eine Fremd-DLL nutzen will, dann muss man speziell dafür eine andere DLL erstellen, die nur die Aufrufe an die Fremd-DLL weiterreicht.

Das Stichtwort wäre a "JNI", "Java native interface". Kann aufwändig sein.

Als Alternative kannst du JNA versuchen: Java Native Access (JNA): Pure Java Access to Native Libraries — Java.net Ich selbst habe es nicht nicht richtig getestet, aber damit soll der Zuriff auf DLLs so ähnlich möglich sein, wie du es hier versucht zu haben scheinst.
 

Stapf_JAVA

Mitglied
Hi.
Danke für die Infos...Schau ich mir mal an...
Aber: die gepostete Datei war ja vom Hersteller der Karte. Würde mich wundern wenn man die DDL dann nicht laden kann...
Trotzdem Danke

Ich dachte es liegt daran dass die ddl nicht gefunden wird wegen
Code:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no Qlib32.dll in java.library.path
 
Zuletzt bearbeitet:

HoaX

Top Contributor
Wenn die Java-Datei vom Hersteller kommt, dann sollte es wohl gehen.
Gib doch mal das Systemproperty java.library.path beim Starten an und lass es absolut auf das Verzeichnis zeigen, in welchem die DLL liegt.
 

Stapf_JAVA

Mitglied
Habe mir mit
Code:
System.out.println(System.getProperty("java.library.path"))
anzeigen lassen welche Verzeichnisse funktionieren sollten...Die originale Qlib32.dll Datei liegt in einem der aufgelisteten Verzeichnisse...zeitweise war sie sogar in mehreren...Aber es funktioniert nicht...
Was genau meintest du mit absolut setzen??
Ich werde am Besten mal beim Hersteller nachforschen. Bin aber weiterhin um alle Tipps und Informationen dankbar.
Viele Grüße
 

Marco13

Top Contributor
:exclaim: Ah OK, kann man ja nicht wissen: Wenn die DLL vom Hersteller speziell für den Java-Zugiff ist, dann sollte es eine JNI-DLL sein, d.h. dann sollte es eigentlich gehen.

Versuch' mal, NUR die gepostete Java-Datei (und ggf. eine kleine main, die nur eine Methode zum Testen aufruft) und die DLL (und alle weiteren DLLs, die dazugehören könnten) in ein Verzeichnis zu kopieren, und die Datei compilieren und starten. Wenn sie im gleichen Verzeichnis liegt, sollte er sie finden. Aber Groß- und Kleinschreibung beachten kann nie schaden: Also wenn die Datei
Qlib32.dll
heißt, sollte der Aufruf auch
System.loadLibrary("Qlib32"); // win32: Qlib32.dll
sein (bei WIndows sollte es eigentlich keinen Unterschied machen, auf anderen OSes aber schon)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Falscher Link zum Path? Unterschiedliche Antworten bei Eclipse und VisualStudiocode Java Basics - Anfänger-Themen 5
B Alle Links in einem Text suchen und ersetzen mit einem neuen Link Java Basics - Anfänger-Themen 18
N Eclipse Source importieren ohne Link Java Basics - Anfänger-Themen 3
D Communications link failure | java.lang.NullPointerException Java Basics - Anfänger-Themen 3
B Wer kennt einen Link für vollständiges, leichtverständliches "Game of Life"? Java Basics - Anfänger-Themen 1
A Link in der Eingabeleiste nichr anzeigen Java Basics - Anfänger-Themen 1
U link erstellen in java Java Basics - Anfänger-Themen 4
F EUI-64 von IPv6 berechnen (local link) Java Basics - Anfänger-Themen 2
S GUI ImageIcon Mouselistener Link Java Basics - Anfänger-Themen 0
J Quellcode von einem Link kriegen? Java Basics - Anfänger-Themen 3
C Link wie bei HTML Java Basics - Anfänger-Themen 7
M Größe einer Datei via. Link ermitteln Java Basics - Anfänger-Themen 9
C einfacher Link zu *.html Datei möglich? Java Basics - Anfänger-Themen 4
E Fragezeichen im Link, was ist das? Java Basics - Anfänger-Themen 10
D Link mit wechselndem Text Java Basics - Anfänger-Themen 2
J showmessageDialog Link öffnen Java Basics - Anfänger-Themen 2
D Link over Buttons Java Basics - Anfänger-Themen 4
D Variable per Link an Java übergeben Java Basics - Anfänger-Themen 8
A Text als Link behandeln Java Basics - Anfänger-Themen 8
G Link Verbindung Java Basics - Anfänger-Themen 2
C einen Link durch einen anderen Lunk ersetzen Java Basics - Anfänger-Themen 8
B Link in JEditorPane eingeben? Java Basics - Anfänger-Themen 3
V Link Error java.library.path Java Basics - Anfänger-Themen 4
V "Link" am Bild Java Basics - Anfänger-Themen 11
M JSP: Problem bei Link ja oder nein? Java Basics - Anfänger-Themen 2
G Webseite aufrufen mit Java (Link artig) Java Basics - Anfänger-Themen 7
G Überprüfen ob es ein Link existiert Java Basics - Anfänger-Themen 3
X WWW-link innerhalb java applet einbinden Java Basics - Anfänger-Themen 5
H Unterbrochener Link im Fomular bei Servlet-Aufruf Java Basics - Anfänger-Themen 4
I Exception wird gefangen, aber trotzdem in Error Log? Java Basics - Anfänger-Themen 10
terashy VS Code Project run error Java Basics - Anfänger-Themen 10
monsterherz Circle.java:5: error: <identifier> expected Java Basics - Anfänger-Themen 2
monsterherz error: <identifier> expected Java Basics - Anfänger-Themen 2
R Compiler-Fehler identifier error? Java Basics - Anfänger-Themen 3
N Compiler-Fehler Not a statement Error Java Basics - Anfänger-Themen 7
Jul1n4tor Scanner error bei Eingabe die kein Integer ist Java Basics - Anfänger-Themen 4
richrich99 error: illegal start of expression Java Basics - Anfänger-Themen 10
M error: '.class' expected switch(char) Java Basics - Anfänger-Themen 32
N Compiler-Fehler State Machine - Compiler Error Java Basics - Anfänger-Themen 48
U Interface als PAramter (Vergleich) und ein Error Java Basics - Anfänger-Themen 9
FHEFHJHFJH error: class names, 'summe_bsp', are only accepted if annotation processing is explicitly requested Java Basics - Anfänger-Themen 3
S JavaKara Null Exception Error Java Basics - Anfänger-Themen 4
P Eclipse Karate Framework API Test . Unexpected Error: the trustAnchors parameter must be non-empty Java Basics - Anfänger-Themen 1
H Versteht jemand diesen Codewars Error? Java Basics - Anfänger-Themen 8
J Fehlermeldung: A JNI error Java Basics - Anfänger-Themen 3
Gaudimagspam Compiler Error Java Basics - Anfänger-Themen 3
Eule25 Arbeit mit long und int, Error: integer number too large Java Basics - Anfänger-Themen 2
P Welche Zeile in Tadople gibt einen compiler error? Java Basics - Anfänger-Themen 5
B Methoden if-statement error, FX, Fehlermeldung Java Basics - Anfänger-Themen 6
K Error bei meinem Programm - Hilfe Java Basics - Anfänger-Themen 8
A Scanner-Error Java Basics - Anfänger-Themen 8
Elyt Error: incompatible types Java Basics - Anfänger-Themen 3
I Client ObjectInputStream error... Java Basics - Anfänger-Themen 5
Kirby.exe Alle möglichen Error Möglichkeiten abfangen Java Basics - Anfänger-Themen 33
C error: <identifier> expected Java Basics - Anfänger-Themen 13
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
N Methoden Unerklärliche Error Meldung Java Basics - Anfänger-Themen 3
ZH1896ZH Datentypen Error bei For-Schleife Java Basics - Anfänger-Themen 2
R Error, wenn mehrere Clients gleichzeitig die Verbindung beenden Java Basics - Anfänger-Themen 16
Z Klassen Error: ';' expected - was mache ich falsch? Java Basics - Anfänger-Themen 4
9 Error bei .split() Java Basics - Anfänger-Themen 2
L Operatoren error: bad operand types for binary operator && Java Basics - Anfänger-Themen 8
B cal4j - Error at line 1:Unexpected end of file Java Basics - Anfänger-Themen 0
F Erste Schritte error: cannot find symbol Java Basics - Anfänger-Themen 5
L SQLITE - Syntax error Java Basics - Anfänger-Themen 3
R else without if error Java Basics - Anfänger-Themen 5
A Objekt in Methode zurückgeben, JUnit zeigt Error Java Basics - Anfänger-Themen 2
F Ausdruck wirft unerwarteten Error Java Basics - Anfänger-Themen 2
T Unverständlicher Launch-Error Java Basics - Anfänger-Themen 11
L Bluej Error: Cannot find Symbol Java Basics - Anfänger-Themen 13
R java.lang.ArrayIndexOutOfBoundsException: 0 Rechner Error Java Basics - Anfänger-Themen 4
F Taschenrechner "Error loading class..." Java Basics - Anfänger-Themen 5
T Error: int cannot be dereferenced Java Basics - Anfänger-Themen 10
D Datentypen Datentyperstellung | Kompiler sagt Syntax Error doch ich find keine Lösung Java Basics - Anfänger-Themen 2
J Syntax error on token ";",, expected Java Basics - Anfänger-Themen 2
W double*double error Java Basics - Anfänger-Themen 4
C Compiler-Fehler No such Field error Java Basics - Anfänger-Themen 20
B Linux - Error: Could not find or load main class application.Main Java Basics - Anfänger-Themen 28
T Datum wird auf der Konsole richtig ausgegeben, aber im Textarea kommt ERROR Java Basics - Anfänger-Themen 8
C Erste Schritte Syntax Error Java Basics - Anfänger-Themen 23
H Variablen error: non-static variable cannot be referenced from a static context Java Basics - Anfänger-Themen 4
H Compiler-Fehler error not a statement Java Basics - Anfänger-Themen 2
N Error bei eingabe eines Punktes Java Basics - Anfänger-Themen 1
T error: class, interface, or enum expected Java Basics - Anfänger-Themen 5
TheMenox Error bei Scanner - woher? Java Basics - Anfänger-Themen 14
D Compiler-Fehler error: .class expected Java Basics - Anfänger-Themen 2
Chr1s Interpreter-Fehler Error Fehlercode Java Basics - Anfänger-Themen 7
D Bitte um Hilfe bei "error: package com.apple.eawt does not exist import com.apple.eawt.*;" Java Basics - Anfänger-Themen 1
J Error: cannot find symbol - variable Java Basics - Anfänger-Themen 3
S Compiler-Fehler error: ';' expected (finde Fehler nicht) Java Basics - Anfänger-Themen 10
D Erste Schritte Fehlermeldung "Syntax error on token ";", { expected after this token" Java Basics - Anfänger-Themen 13
L Compiler-Fehler error: class, interface or enum expected Java Basics - Anfänger-Themen 2
1 Bei if-Anweisung: Syntax error on token Java Basics - Anfänger-Themen 5
D Übung Felder java Error kompilieren Java Basics - Anfänger-Themen 4
Joew0815 Error org.apache.xmlrpc.client.XmlRpcClientConfigImpl.setUserAgent Java Basics - Anfänger-Themen 2
A Code läuft nicht, Fehlermeldung Exception in thread "main" java.lang.Error: Unresolved compilation " Java Basics - Anfänger-Themen 11
C Exception Error Java Basics - Anfänger-Themen 15
A Heap Space Error bei rekursiver Suche in Dateien trotz nur einer Zeile im Speicher Java Basics - Anfänger-Themen 26
B Not a statement error Java Basics - Anfänger-Themen 2
D error: cannot find symbol Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben