创建 MFC DLL-使用关键字_declspec(dllexport)

本文仅供学习交流,严禁用于商业用途,如本文涉及侵权请及时联系本人将于及时删除

从MFC DLL中导出函数的另一种方法是在定义函数时使用关键字_declspec(dllexport)。这种情况下,不需要DEF文件。

导出函数的形式为:

cpp 复制代码
declspec(dllexport) <返回类型> <导出函数名>(<函数参数>);

【例9.2】创建一个计算正方形和圆的面积的MFC 常规DLL的动态连接库MFCLibrary2,使用关键字_declspec(dllexport)导出函数。

(1) 使用"MFC动态链接库"项目模板,在chap09解决方案中新建一个名为MFCLibrary2的MFC动态链接库项目。

(2) 在项目MFCLibrary2中添加导出函数AreaEllipse()和AreaSquare()。

cpp 复制代码
① 在MFCLibrary2.h文件中添加函数原型。
extern "C" __declspec(dllexport) double AreaEllipse(double r);
extern "C" __declspec(dllexport) double AreaSquare(double x);
cpp 复制代码
② 在MFCLibrary2.cpp文件中实现函数。
extern "C" __declspec(dllexport) double AreaEllipse(double r)
{
	return 3.1415926*r*r;
}

extern "C" __declspec(dllexport) double AreaSquare(double x)
{
	return x*x;
}

(3) 编译、链接程序,生成动态链接库MFCLibrary2.dll

找到项目MFCLibrary2所在的路径,在Debug文件夹下会看到生成的动态链接库MFCLibrary2.dll和MFCLibrary2.lib,如图所示。(解决方案下的Debug文件)

相关推荐
雪度娃娃1 分钟前
转向现代C++——在创建对象时注意区分()和{}
开发语言·c++
Tisfy4 分钟前
VSCode Docker(Code Server)首次调试C++长时间下载debuginfo问题
c++·vscode·docker
读书札记202212 分钟前
C++ switch..case语句中变量跨域问题探讨及解决方法
开发语言·c++
努力努力再努力wz19 分钟前
【Redis入门系列】Redis基础命令详解:从客户端连接到数据读写、key 管理与过期机制
c语言·开发语言·数据结构·数据库·c++·redis·缓存
Peter·Pan爱编程22 分钟前
输入输出:iostream 为什么不是 printf 的替代品
c++·输入输出·c++基础·iostream
代码村新手33 分钟前
C++-模板进阶
开发语言·c++
Shadow(⊙o⊙)35 分钟前
qt中自定义槽函数 内部继承逻辑、GUI+CLI协同1.0
开发语言·前端·c++·qt
雪度娃娃39 分钟前
行为型设计模式——职责链模式
c++·设计模式·责任链模式
·心猿意码·1 小时前
OCCT源码解析(二):NCollection解析
数据结构·c++
进击的荆棘1 小时前
C++起始之路——C++11(下)
开发语言·c++·c++11·lambda