这段时间为了给自己的项目做插件化,把一些逻辑拆成独立 DLL。手动创建工程太折腾,于是我顺手写了一个 DLL 生成器。简单讲,就是输入模块名,它会自动生成头文件、实现文件,还有一个可以直接用的编译脚本。

生成的基础模板结构
生成器会自动创建下面这些:
/MyModule
include/MyModule.h
src/MyModule.cpp
build.bat
MyModule.h 会自动写好导出宏:
#ifdef MY_EXPORT
#define MY_API __declspec(dllexport)
#else
#define MY_API __declspec(dllimport)
#endif
extern "C" {
MY_API int Add(int a, int b);
}
这样不用手动配置导出函数。
实测:生成 DLL 并调用
我输入模块名:MathTool
生成器创建完后,我在 MyModule.cpp 写了最简单的测试逻辑:
int Add(int a, int b) { return a + b; }
然后运行自动生成的:
build.bat
几秒后 DLL 文件就出来了。
调用测试也非常顺利:
typedef int(*AddFunc)(int, int);
HMODULE h = LoadLibrary(L"MyModule.dll");
AddFunc Add = (AddFunc)GetProcAddress(h, "Add");
printf("%d\n", Add(10, 20));
运行结果:30
说明模板的导出设计和编译参数没有问题。
实测:导出类的处理
直接导出 C++ 类 ABI 不稳定,我用的是更稳妥的封装方式:
通过 C 接口生成对象,再返回指针。
模板代码为:
class MY_API MathTool {
public:
int Multiply(int a, int b);
};
extern "C" {
MY_API MathTool* CreateMathTool();
MY_API void DestroyMathTool(MathTool*);
}
实际测试后,这种方式跨 DLL 调用最稳定。
使用体验总结
写了 DLL 生成器之后,新增一个 DLL 模块只需要 2 秒:
输入名字 → 自动生成文件 → build.bat 编译。
比过去的“新建项目 → 配置环境 → 添加宏”要省事太多。
对于做 C++、插件化、中间层桥接(比如给 Node、C# 调用)的会很友好。
仅限交流,拒绝商用!
下载地址:
隐藏内容,解锁需 付费 30元
付费解锁












![[源码分享] 创胜系列定制版本嘉年华房卡源代码【开发引擎Cocos Creator2.4.3】-](https://www.264rose.com/wp-content/uploads/2024/10/c4ca4238a0b9238-10.jpg)




