创建项目
使用C++编译器(如Visual Studio)创建一个新的“DLL”项目。
编写头文件
定义DLL中将要导出的函数和类。
使用`extern "C"`来避免C++的名称修饰(name mangling)。
使用`ifdef MYDLL_EXPORTS`来区分导出和导入的函数。
编写源文件
实现头文件中声明的函数。
同样使用`extern "C"`。
编写模块定义文件(.DEF)
描述DLL的公共接口。
包含LIBRARY语句和EXPORT宏定义。
编译和链接
编译源代码文件生成目标文件。
链接目标文件生成DLL。
测试DLL
创建一个测试程序来调用DLL中的函数。
确保DLL被正确加载和使用。
下面是一个简单的示例,展示如何创建一个包含导出函数的DLL:
newDLL.h

ifdef _cplusplusdefine EXPORT extern "C" _declspec(dllexport)elsedefine EXPORT _declspec(dllexport)endifEXPORT BOOL CALLBACK EdrCenterTextA(HDC hdc, PRECT prc, PCSTR pString);EXPORT BOOL CALLBACK EdrCenterTextW(HDC hdc, PRECT prc, PCWSTR pString);ifdef UNICODEdefine EdrCenterText EdrCenterTextWelsedefine EdrCenterText EdrCenterTextAendif
newDLL.cpp
include "newDLL.h"BOOL CALLBACK EdrCenterTextA(HDC hdc, PRECT prc, PCSTR pString) {// 实现文本居中功能return TRUE;}BOOL CALLBACK EdrCenterTextW(HDC hdc, PRECT prc, PCWSTR pString) {// 实现文本居中功能return TRUE;}
newDLL.def
LIBRARY TowngateEXPORTSEdrCenterTextAEdrCenterTextW
编译和链接:
使用Visual Studio或其他C++编译器编译`newDLL.cpp`生成目标文件。
使用`lib`工具或编译器的链接选项将目标文件链接成DLL。
测试DLL:
创建一个测试程序,使用`LoadLibrary`和`GetProcAddress`加载DLL并调用其中的函数。
请根据具体情况调整上述代码示例。
