Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Jni DLL v Javě

Potřebuju napsat program v javě, který volá metody dllka.
1. Prográmek Lcoew32.java:

public class Lcoew32 {
	public static native void LceGetSessionId();

	static {
		try {
			System.loadLibrary("Lcoew32");
			System.out.println("Dll bylo načteno");
		}
		catch (Exception e) {
			System.out.println("Nepodařilo se načíst dll");
			System.exit(-1);
		}
	}
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		LceGetSessionId();
	}
}

2. Přeložím ho pomocí javac.
3. Vygeneruju hlavičkový soubor LCOEW32.h pomocí javah:
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class Lcoew32 */

#ifndef _Included_Lcoew32
#define _Included_Lcoew32
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     Lcoew32
 * Method:    LceGetSessionId
 * Signature: ()V
 */
JNIEXPORT void JNICALL Java_Lcoew32_LceGetSessionId
  (JNIEnv *, jclass);

#ifdef __cplusplus
}
#endif
#endif
4. Program LceGetSessionID.c:
#include <windows.h>
#include "LCOEW32.H"
#include <stdio.h>

JNIEXPORT void JNICALL Java_Lcoew32_LceGetSessionId(JNIEnv *env, jclass cls) {
    printf("Sláááááva, funguje to!!!!"); 
    return;         
}
5. Zkompiluju Céčkový program.
6. Spustím java Lcoew32
Dll bylo načteno
   Exception in thread "main" java.lang.UnsatisfiedLinkError: Lcoew32.LceGetSessionId<>V
    at Lcoew32.LceGetSessionId<Native Method>
    at Lcoew32.main<lcoew32.java:19>

Co s tím? Path mám nastavený na adresář s vytvořeným dll. Navíc počítám, že kdyby se dll nenačetlo, tak by to spadlo na výjimku a nevypsalo by mi to, že bylo načteno. Takže tady podle mne chyba asi nebude. Fakt nevím, co s tím :.(

Odpověď na otázku

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny