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

相关推荐
kaixin_learn_qt_ing23 分钟前
C++多态实现原理
c++
无名猿35 分钟前
unique_ptr 完全指南:独占所有权与零开销
c++·性能优化·内存管理·标准库·现代c++
笑鸿的学习笔记39 分钟前
C++笔记之大块顺序写
java·c++·笔记
无名猿2 小时前
对象构造与析构顺序全解:声明顺序、继承链与逆序析构
c++·内存管理·调试技巧·现代c++
殷色玫瑰2 小时前
C/C++ 内存管理详解:从内存分布到 new/delete 底层原理
java·linux·c语言·c++
C++ 老炮儿的技术栈2 小时前
不一样的数值交换
数据结构·c++·人工智能·算法·c·csdn开发云
C++ 老炮儿的技术栈2 小时前
main函数之后的调用
c语言·c++·人工智能·qt·mfc·c
知识分享小能手3 小时前
C++ 学习教程,从入门到精通,C++ 友元、异常和其他特性 — 详细知识点(15)
开发语言·c++·学习
ebiobiz3 小时前
极海 APM32 使用 Nimmake 编译指南
c++·python·单片机·嵌入式硬件·mcu
朝朝辞暮i3 小时前
C++ 第 26 课:对象、指针与 ->
java·开发语言·c++