mingw版本:8.1.0
dll函数查看器:dllexp.exe(点击下载 提取码:s7tu)
导出函数要以extern “C”进行声明,否则导出函数名头部、尾部有下划线及其他特殊字符标识。
DLL编译命令:
g++ -shared -o project.dll project.cpp -include 具体引用文件
mingw编译生成动态库或可执行程序摆脱对libgcc-****.dll、libstdc++-*.dll动态库依赖需要在编译时添加命令-static-libgcc、-static-libstdc++(功能:编译时使用静态库连接)。
导出示例无extern “C”声明:
dll.h
#ifdef BUILD_DLL
#define EXPORT __declspec(dllexport)
#else
#define EXPORT __declspec(dllimport)
#endif
extern "C" {
EXPORT int test();
EXPORT const char* add(int x, int y);
}
dll.cpp
#include "dll_robot.h"
int test(){
return 20220118;
}
const char* add(int x, int y){
return "不会做";
}