美创科技技术社区

注册

 

发新话题 回复该主题

java调用c++生成的dll [复制链接]

1#

1.新建一个java类,内容如下:

public class Test {

public native String printValue(String str);

static{

System.loadLibrary("testdll");   //与下面新建的工程名字相同即可。

}

}

2.使用javac命令生成.class文件,javac Test.java就会生成Test.class文件


3.使用Javah命令生成.h的头文件,javah Test就会Test.h文件


4.打开visual studio,新建一个win32控制台应用程序,取名叫testdll,下一步,在应用程序类型中选择“DLL”,附加选项选择“空项目”


5.在头文件部分引入刚才的Test.h文件。


6.在源文件部分新建Test.cpp文件,内容如下:


/* DO NOT EDIT THIS FILE – it is machine generated */
#include <jni.h>
/* Header for class Test */

#ifndef _Included_Test
#define _Included_Test
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class:     Test
* Method:    printValue
* Signature: (Ljava/lang/String;)Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL Java_Test_printValue
  (JNIEnv *env, jobject obj, jstring str){
return str;
}

#ifdef __cplusplus
}
#endif
#endif


7.新建一个测试类,TestTest.java,内容如下:


public class TestTest {

public static void main(String[] args) {
Test test = new Test();
System.out.println(test.printValue("Hello World!"));
}
}
结果就会打印出Hello World!

分享 转发
TOP
发新话题 回复该主题