文档详情

java调用C++程序.docx

发布:2016-12-13约小于1千字共8页下载文档
文本预览下载声明
Java调用C++程序步骤编写C++程序新建一个头文件test.htest.h头文件中内容extern C _declspec(dllexport)extern c的声明,不然到时候使用java的jna是不可能匹配到这个方法的,很明显会抛出异常 java.lang.UnsatisfiedLinkError: Error looking up function add: ???μ???¨μ),这个文件相当于我们的java中的interface,选择.cpp文件进行编译,编译成.dll文件右键.cpp属性右键JNA.cpp,选择编译在项目的Debug文件下便会生成对应的.dll文件,名称与编译的.cpp文件名称相同导入jar包:jna.jarJava程序创建interface继承StdCallLibrary类其中声明的方法要与C++中写的方法名相同Native.loadLibrary(String path ,class)Path:生成.dll文件在java项目中编译之前的路径,不需要写项目名“src/JNA/JNA”“WebRoot/JNA/JNA”类名要与类名相同调用函数的方法,并将参数赋值extern C _declspec(dllexport)与_declspec(dllexport)的区别编译器对C++和C的区别,编译器在编译C++的程序的时候会把函数编译成函数名+_+参数...的形式,比如int?f(int?a)就 是?_f_int这个样子(根据编译器不同可能编译成不一样的方式),所以这个也解释了为什么C++如何支持重载的,而C编译器只能编译成_f这个样 子,extern?C表示按照C来编译
显示全部
相似文档