Probleme mit JNI



  • Baweg schrieb:

    Wenn ich das vor die anderen includes schreibe dann kommt
    fatal error C1083: Include-Datei kann nicht geöffnet werden: 'iostream.h': No such file or directory

    Der Header heißt ja auch nicht <iostream.h>, sondern <iostream> (und <string.h> kannst du gleich ersetzen durch <cstring>).



  • Ah stimmt...hab das so im inet gefunden...

    Und was ist mit jni.h!? Die findet der auch net... auch nicht ohne h!



  • Das ist kein ANSI-Header, also ist <jni.h> eigentlich richtig. Aber dazu mußt du deinem Compiler mitteilen, wo er diese Datei finden soll (am besten, indem du sie in seinen Default-Include-Header kopierst).



  • Wo finde ich denn die Headerdatei!? Und wie kopier ich die in den Default-Include-Header?



  • Die findest du im include-Verzeichnis deiner JDK-Installation.

    Aber Vorsicht: jni.h includiert seinerseits eine Datei namens jni_md.h
    Die mußt du auch mitkopieren.

    Wohin die bei dir kopiert werden müßen hangt von deiner
    C++ Entwicklungsumgebung ab.

    Ich bin seit gestern auch dabei JNI zu nutzen, allerdings brauche
    ich kein C++; C reicht für meine Zwecke vollkommen aus und mit
    Dev-CPP ist es auch recht einfach zu nutzen.



  • Ich benutze Visual Studio .NET 2003
    Weiß jemand wo ich das da hinkopieren muss?
    Und wie kann cih eine dll erstelle? Überall steht auf Neu => Projekt => Dynamic-Link-Library aber das gibt es nicht! Gibt nur MFC-DLLs aber das will ich ja nicht!



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum MFC (Visual C++) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Einfach "Vorkompilierte Headerdateien verwenden" deaktivieren.
    jni.h liegt irgendwo im JDK Verzeichnisbaum, ebenso die Libs.
    Daher mußt du die entsprechenden Pfade in deinem Projekt hinzufügen.
    DLLs erzeugst du mit einem DLL Projekt



  • Und wie kann ich die Pfade in Visual Studio angeben? Ich hab die jni.h einfach mal als Element ins Projekt geladen aber dann kommt die Meldung immernoch...



  • Ich bin nun wahrlich kein Experte für IDE's für C++.

    Aber wenn du schreibst, du hättest jni.h (vergiß daß jni_md.h)
    mit in dein Projekt genommen, vermute ich mal, daß du in diesem
    Fall nicht

    #include <jni.h>
    

    sondern

    #include "jni.h"
    

    schreiben mußt.

    Falls dem so ist, mußt du natürlich auch das #include <jni_md.h> in
    jni.h entsprechend ändern.



  • Habs mit <jni.h> und "jni.h" versucht.
    In der jni.h is nochmal ein #include <jni.h> und das hat ich auch mal geändert in "jni.h". Immernoch die Meldung dass ers nicht findet...



  • Baweg schrieb:

    In der jni.h is nochmal ein #include <jni.h>

    Das kann ich mir jetzt weniger vorstellen; es wäre ja ein unendliches
    Inkludieren. Oder die Zeile wird über ifdefs gar nicht erreicht.

    Was aber dort stehen sollte (Java 1.5's jni.h zumindest) ist,

    #include <jndi_mh.h>

    Ansonsten kann ich dir auch nicht weiterhelfen. 😞


Anmelden zum Antworten