Code:
public class KI {
static
{ System.loadLibrary("InmiChess"); }
public native void InmiChessSetStartPosition();
public KI() {
System.out.println(System.getProperty("java.library.path"));
//System.setProperty("java.library.path","Z:\\");
System.loadLibrary("InmiChess");
System.out.println(System.getProperty("java.library.path"));
InmiChessSetStartPosition();
}
public static void main(String[] args) {
System.loadLibrary("InmiChess");
KI KI1 = new KI();
}
}
Die DLL InmiChess.dll bekommt ihr unter: http://www.chessbase.com/download/engines/inmichess.zip
Wenn ich dieses Programm ausführe, kommt die Exeption:
java.lang.UnsatisfiedLinkError: InmiChessSetStartPosition
at KI.InmiChessSetStartPosition(Native Method)
at KI.(KI.java:11)
at KI.main(KI.java:15)
Exception in thread "main"
Prototyp für diese Funktion:
Code:
__declspec(dllexport) void __cdecl
InmiChessSetStartPosition()
{
int rc;
aCallback.showText("New Board");
rc=startaufstellung();
} /*OK*/
Ich möchte diese DLL einbinden (schachengine), und dann diese Funktionen aufrufen. Ist es überhaupt möglich, diese Art von DLLs (offensichtilich sehr umfangreicher Code) einzubinden?
Gibt es Konverter, die die jni.h in die DLL einbinden usw., sprich die DLL in eine für JNI nutzbare DLL umwandeln? :bahnhof: