创建 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文件)

相关推荐
蜀黍@猿9 分钟前
【C++ 基础】从C到C++有哪些变化
c++
Am心若依旧40910 分钟前
[c++11(二)]Lambda表达式和Function包装器及bind函数
开发语言·c++
zh路西法20 分钟前
【C++决策和状态管理】从状态模式,有限状态机,行为树到决策树(一):从电梯出发的状态模式State Pattern
c++·决策树·状态模式
轩辰~34 分钟前
网络协议入门
linux·服务器·开发语言·网络·arm开发·c++·网络协议
lxyzcm1 小时前
C++23新特性解析:[[assume]]属性
java·c++·spring boot·c++23
蜀黍@猿1 小时前
C/C++基础错题归纳
c++
雨中rain1 小时前
Linux -- 从抢票逻辑理解线程互斥
linux·运维·c++
ALISHENGYA3 小时前
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之分支结构(实战项目二)
数据结构·c++·算法
arong_xu3 小时前
现代C++锁介绍
c++·多线程·mutex
汤姆和杰瑞在瑞士吃糯米粑粑3 小时前
【C++学习篇】AVL树
开发语言·c++·学习