Wie mit JNA C++ dll benutzen?

Empire Phoenix

Top Contributor
Hi cih versuche gerade für ein späteres Project zu verstehen wie ich mit JNA auf C++ zugreifen kann.

[c++ code]
Code:
#include <iostream>
using namespace std;

static void Hello(){
	cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
}

[java code]
Java:
import com.sun.jna.Library;
import com.sun.jna.Native;
 
/** Simple example of Windows native library declaration and usage. */
public class BeepExample {
   public static void main(String[] args) {
		System.load("c:/libHello DLL.dll");
		HelloDLL lib = (HelloDLL)Native.loadLibrary("libHello DLL.dll", HelloDLL.class);
		lib.Hello();
   }
}

interface HelloDLL extends Library {
	void Hello();

}

Exception:
Exception in thread "main" java.lang.UnsatisfiedLinkError: Error looking up function 'Hello': The specified procedure could not be found.

at com.sun.jna.Function.<init>(Function.java:179)
at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:344)
at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:324)
at com.sun.jna.Library$Handler.invoke(Library.java:203)
at $Proxy0.Hello(Unknown Source)
at BeepExample.main(BeepExample.java:10)


Ich frage mich nun, was ich falsch mache?

Ich benutze MingW mit autoinstaller installiert und eclipse für c/c++ auf einem win xp/32
 
G

Gastredner

Gast
Funktionierts damit?
Code:
#include <iostream>

using namespace std;

extern "C" {

static void Hello(){
	cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
}

}
 

Empire Phoenix

Top Contributor
Nein, hilft leider nicht. bzw ist nicht das ganze problem :/

Laut depends wird die funktion auf jeden fall damit richtig exportiert, aber jna sagt mir immernoch diese fehlermeldung :(
 

LoR

Bekanntes Mitglied
Deine C++ Dll ist nicht richtig definiert.

hello.h
Code:
extern "C" {
	void __declspec(dllexport) Hello();
}

hello.cpp
Code:
#include <iostream>
#include "hello.h"

using namespace std;

void Hello(){
	cout << "!!!Hello World!!!" << endl;
}

Nicht vergessen den Library Path zu setzen (jna.library.path).
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Wieso benutzen PriorityQueues Heaps? Allgemeine Java-Themen 2
B Java mit command line und jars benutzen? Allgemeine Java-Themen 18
X Wie kann ich meine Stdlib in Intelliji benutzen? Allgemeine Java-Themen 3
M Wie kann ich ein int[] Array in einer Methode benutzen? Allgemeine Java-Themen 6
D Warum kann ich eine (deflaut) Klasse aus einer Libary in einem anderen Projekt benutzen? Allgemeine Java-Themen 3
dereki2000 Eigenen Zeichensatz benutzen Allgemeine Java-Themen 7
N Jsoup, Links weiter benutzen Allgemeine Java-Themen 5
I Java google Sandbox benutzen Allgemeine Java-Themen 1
Thallius PDF oder Word als Template benutzen Allgemeine Java-Themen 1
K CET-Zeit benutzen Allgemeine Java-Themen 6
B Klassen Eigene Klasse als Array benutzen Allgemeine Java-Themen 3
T .dll in java benutzen aber wie? Allgemeine Java-Themen 4
K Thread richtig benutzen Allgemeine Java-Themen 3
K Event benutzen Allgemeine Java-Themen 4
D Wann sollte ich statische Methoden und Variablen benutzen? Allgemeine Java-Themen 44
B Commandline jar mit Java benutzen Allgemeine Java-Themen 11
Q Variable aus Schleife/Switch benutzen Allgemeine Java-Themen 7
B MCSCM.dll mit Java benutzen Allgemeine Java-Themen 3
E Wie Constructor mit Parametern benutzen (getConstructor) Allgemeine Java-Themen 2
F Bash Pipe benutzen Allgemeine Java-Themen 4
J Tokenizer benutzen? Allgemeine Java-Themen 2
V Public SVN benutzen? Allgemeine Java-Themen 11
E welche standalone Version von Tomcat benutzen? Allgemeine Java-Themen 6
Y Wann folgende Technologien benutzen Allgemeine Java-Themen 5
Y Reflection - wie kann ich eine Methode benutzen Allgemeine Java-Themen 4
Y Reflection - wie anwenden/benutzen bei folgendem Problem Allgemeine Java-Themen 3
E Mikrophon benutzen? Allgemeine Java-Themen 4
J MOtherboard Speaker benutzen? Allgemeine Java-Themen 19
G eclipse mit jdk 1.4 und 5 benutzen Allgemeine Java-Themen 10
P DLL Funktion benutzen Allgemeine Java-Themen 3
L Java ohne Installation benutzen? Allgemeine Java-Themen 2
G Jar File soll anderes benutzen Allgemeine Java-Themen 3
S Array wie benutzen? Allgemeine Java-Themen 3
N XInput API (DLL für XBox 360 Controller) mit Java benutzen? Allgemeine Java-Themen 3
B Was sollte ich benutzen Vektor oder ArrayList? Allgemeine Java-Themen 5
L Eclipse VM/JRE für Ant Build benutzen Allgemeine Java-Themen 1
B Fremde Packages benutzen? Allgemeine Java-Themen 11
U Komponente aus grösserem Projet benutzen Allgemeine Java-Themen 4
P Java Subprozess, StdIn und StdOut benutzen Allgemeine Java-Themen 10
G BufferedImage benutzen Allgemeine Java-Themen 6
F JProgressBar benutzen Allgemeine Java-Themen 5
H Zustandsvariable als int global benutzen? Allgemeine Java-Themen 5
G mehrere JPanels als Fenster benutzen Allgemeine Java-Themen 3
F Aus Java heraus WinAPI Funktionen benutzen Allgemeine Java-Themen 7
L java.text.NumberFormat und java.text.DecimalFormat benutzen Allgemeine Java-Themen 2
S private Methoden benutzen Allgemeine Java-Themen 11
A Packet in einem Java-Programm benutzen Allgemeine Java-Themen 4
S Welchen Editor soll man für Graphische lösungen benutzen Allgemeine Java-Themen 2
M Was soll ich benutzen? Java2D, Java3D, Swing, AWT?? Allgemeine Java-Themen 21

Ähnliche Java Themen

Neue Themen


Oben