C/C++动态库函数导出 windows

windows上动态库需要指定导出的函数,有两种方式可以采纳

1、通过__declspec

cpp 复制代码
#ifdef _WIN32
#define DLL_EXPORT __declspec(dllexport)
#else
#define DLL_EXPORT
#endif

DLL_EXPORT int read_file(const char *filename);

2、通过.def文件

.h文件

cpp 复制代码
int read_file(const char *filename);

.def文件

cpp 复制代码
LIBRARY Test

EXPORTS
    read_file

.def文件函数别名 可以将内部的函数隐藏改个别的名字导出

cpp 复制代码
LIBRARY Test

EXPORTS
    read=read_file

编译指令:

bash 复制代码
gcc -shared -o Test.dll test.c test.def
相关推荐
Ronin30512 小时前
信道管理模块和异步线程模块
开发语言·c++·rabbitmq·异步线程·信道管理
LawrenceLan12 小时前
30.Flutter 零基础入门(三十):GridView 网格布局 —— 九宫格与商品列表必学
开发语言·前端·flutter·dart
yoyo君~12 小时前
从内存管理到并发架构:C++ 核心内功修炼指南
开发语言·c++·学习·无人机
老师用之于民12 小时前
【DAY25】线程与进程通信:共享内存、同步机制及实现方案
linux·c语言·ubuntu·visual studio code
2501_9419820513 小时前
告别手动,Java 自动化调用企微外部群的深度实践
开发语言·python
问好眼13 小时前
《算法竞赛进阶指南》0x01 位运算-4.最短Hamilton路径
c++·算法·动态规划·位运算·信息学奥赛
载数而行52013 小时前
算法系列5之交换排序
c语言·数据结构·c++·算法·排序算法
cici1587413 小时前
基于C#的智能仓储上位机系统实现方案
开发语言·c#
-Try hard-13 小时前
线程间通信 | 避免资源竞争、实现同步通信
linux·开发语言·信息与通信
楼田莉子13 小时前
C++并发库介绍(上)
开发语言·c++·学习