JNI: Problem mit Win32-DLL

Vatar

Erfahrenes Mitglied
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
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
C++
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
 
Das Problem ist gelöst. Ich musste das VS-C++ Project ebenfalls Rechner nennen (hies vorher anders, da ich dachte ich könnte da alle JNI-Sachen zusammenfassen).

Das komische ist nur dass die dll auf einmal doppelt so groß war, obwohl ich nur den Namen des Projektes geändert habe, sonst nix. Aber egal hauptsache es läuft.
 
Zurück