在java程序中使用c ++ dll [英] use c++ Dll in java program
本文介绍了在java程序中使用c ++ dll的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图使用 System.LoadLibrary()
使用在c ++中写的简单dll。
UseDllInJava.java:
import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.NativeLong;
import com.sun.jna.Platform;
import com.sun.jna。*;
/ **
*创建者Amit Baz on 06/06/2016。
* /
public class UseDllInJava {
static {
System.loadLibrary(SimpleDll);
}
public native static void HelloFromCPP();
public static void main(String [] args){
HelloFromCPP();
}
}
这是dll: p>
SimpleDll.h
#pragma once
$ b b namespace SimpleDll
{
class MyFunctions
{
public:
static __declspec(dllexport)void HelloFromCPP();
};
}
SimpleDll.cpp:
#includeSimpleDll.h
#include< stdio.h>
#include< iostream>
using namespace std;
命名空间SimpleDll {
externC{
void MyFunctions :: HelloFromCPP(){
cout< Hello from cpp<< endl;
}
}
}
我还添加了变量
-Djava.library.path =Path\To\ SimpleDll到Intellij运行配置中的VM选项。
但是当我运行程序时,它返回错误:
线程main中的异常java.lang.UnsatisfiedLinkError:
UseDllInJava.HelloFromCPP()V
我得到了帮助。
从本教程: https://www3.ntu.edu.sg /home/ehchua/programming/java/JavaNativeInterface.html此外,我不知道JNI命名约定是 Java_< ; Package_name> _< Class_name> _< Function_name>
解决方案