Moinsen. Ich stell das Problem mal hier rein (und nicht zu Java) da ich hier die Windows-Cracks anzutreffen erhoffe
Für mein anstehendes Praktikum wollte ich mich mal ein wenig mit dem Java-Native-Interface befassen.
Ich habe (nach Anleitung) folgende Java und C++ Codes erstellt:
Java
C++
Die größte Schwierigkeit bestand darin erstmal alle Einstellungen im Visual Studio .NET (keine Angst hab ne Studi-Lizenz) einzutragen. Ich habe dem Compiler auch die nötigen Pfade zum JAVA HOME\include und JAVAHOME\include\win32 mit auf den Weg gegeben.
Wenn ich nun aber die dll in meinen Java-Ordner kopiere und das Programm starte kommt folgende Fehlermeldung:
Die Anwendung oder DLL C:\...\RechnerLib.dll ist keine gültige Windows-Datei. Überprüfen Sie dies mit der Installationsdiskette.
Ich habe aber im VS.NET ein Projekt als Win32 erstellt und darin die Option DLL aktiviert. Meiner Ansicht nach müsste es ja so funktionieren, tuts aber nicht.
Thx
Für mein anstehendes Praktikum wollte ich mich mal ein wenig mit dem Java-Native-Interface befassen.
Ich habe (nach Anleitung) folgende Java und C++ Codes erstellt:
Java
Code:
public class Rechner
{
static
{
System.loadLibrary("RechnerLib");
}
public static void main(String[] args)
{
Rechner r = new Rechner();
System.out.println(r.addiere(5,4));
}
native int addiere(int a, int b);
}// endclass
Code:
#include "Rechner.h"
JNIEXPORT jint JNICALL Java_Rechner_addiere (JNIEnv * env, jobject jObject, jint a, jint b)
{
return (jint)(a+b);
}
Die größte Schwierigkeit bestand darin erstmal alle Einstellungen im Visual Studio .NET (keine Angst hab ne Studi-Lizenz) einzutragen. Ich habe dem Compiler auch die nötigen Pfade zum JAVA HOME\include und JAVAHOME\include\win32 mit auf den Weg gegeben.
Wenn ich nun aber die dll in meinen Java-Ordner kopiere und das Programm starte kommt folgende Fehlermeldung:
Die Anwendung oder DLL C:\...\RechnerLib.dll ist keine gültige Windows-Datei. Überprüfen Sie dies mit der Installationsdiskette.
Ich habe aber im VS.NET ein Projekt als Win32 erstellt und darin die Option DLL aktiviert. Meiner Ansicht nach müsste es ja so funktionieren, tuts aber nicht.
Thx