开发环境准备
- 下载 Eclipse IDE for C/C++
地址:https://www.eclipse.org/downloads/packages/ - 安装mingw64
地址:http://www.mingw-w64.org/doku.php/download
1)配置mingw64环境变量
C_INCLUDE_PATH : mingw64安装目录\include
LIBRARY_PATH :mingw64安装目录\lib
2)系统变量的path变量中添加 mingw64安装目录\bin
注意:以防万一,本文也将include和lib目录也加入了path变量中
3)测试 cmd里执行如下命令
输出版本信息则安装成功gcc -v
编译C/C++为dll
eclipse环境下
- eclipse新建项目
- 新建源代码文件
- 编写方法
- 右键项目 properties 配置
1)Tool Chain Editor的配置
2)settings的配置-Wl,--add-stdcall-alias -static-libgcc -static-libstdc++ -shared
- 右键项目 build project 执行编译
编译成功
在eclipse的工作目录 test项目下的debug目录可以找到编译好的dll文件
visual studio 2015环境下
- 新建win32项目
- 新建头文件
#pragma once #ifdef DLL_IMP #define DLL_API __declspec(dllexport) //导出函数 #endif // DLL_API extern "C" { DLL_API char* say(); }
- 新建源文件
#define DLL_IMP #include "say.h" #include<stdio.h> char* say(){ printf("hello"); return "ok"; }
- 设置属性 编译为dll
Java调用dll
- 下载JNA jna.jar 地址:https://mvnrepository.com/artifact/com.sun.jna/jna/3.0.9
- 新建Java项目 引入jna.jar 并将dll拷贝到项目根路径下(否则需要填写dll的绝对路径)
- 编写调用接口类
import com.sun.jna.Library;
import com.sun.jna.Native;
public interface Clibrary extends Library{
//使用eclipse环境下生成的dll
Clibrary instance = (Clibrary) Native.loadLibrary("libtest", Clibrary.class);
//dll中的方法 声明需一致
void sayHello();
//使用vs 2015生成的dll
//Clibrary instance = (Clibrary) Native.loadLibrary("yolo-dll", Clibrary.class);
//String say();
}
- 编写Main类 调用方法执行
public class Main {
public static void main(String[] args) {
Clibrary.instance.sayHello();
}
}
执行结果 如图
版权声明:原创,转载请注明来源,否则律师函警告
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!