












不要幻想一切都那么完美,使用jni调C++功能,也要之前用java声明出预调用的函数,然后用javah和生成的class文件生成一个.h文件,我们做的是针对这个.h文件,实现.cpp。1:写一个Java类,在这个类中包含了需要调用的本地方法的描述。
public class Main {
static{
System.loadLibrary("TestDLL");
}
public native int get();
public static void main(String[] args) {
Main m = new Main();
System.out.println(m.get);
}
}
#include "Main.h"
JNIEXPORT jint JNICALL Java_Main_get(JNIEnv
*, jobject)问题:dll中如果使用了dynamic_cast,就必须把工程的rtti打开,而且dll编译为debug版本,因为rtti要记录每个类的一些信息。否则不能使用这个dll。
注意: 整个过程要保证jdk的版本统一,如vc环境下和javah部分。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。