2、
在VS2017中创建和使用动态链接库DLL
、在VS2017中创建DLL动态链接库
运行 VS2017,选择:新建-> 项目->Visual C++ ->Windows
目位置,输入项目名称(也是动态链接库的名称)
,确定。
b Z
』e±<
J 诟u.l C4 + Windows AS 卜村平台
MFQATl CUR 唳
■他
ExtendbilHy
夺其微?
?JfF VkujI 引udioW程停
宫触 m1W^C
恃?fL:L|Ej^61&:tt
样御睥薜蓝15MyDLL
给项目添加头文件:15MyDLL.h,
桌面-> 动态链接库(DLL),选择保存项
财整g道:|琴四
S■契
Window ■■曲闻9序
Winders-
膏耋ruE十eip,
宙mHCi瞄:切3 4喧
E Window 0钿沽辱燕XDLL密]
Vtsud Ct-b RSM DLL祢可园乾丘序卒邓中既事
眼独瑚. DU H.心白UK*事日
YR3 C* +勺*备■很 f£为和事正#工作,也海
" VEXL
WisujJ C+4-
VkudJ Ct-t-
理|盘MyALL ,岫叫由Viwil湖曲!唤皂
女件归 safcE.项囹m Si刖P)生庶戚 Hi^fDi auiwj ZRE 焦旬日S?折
■ ■ | Debugi ■
嶂炒Elmira
& - H由圆户|二
rtl ?*J55 J15MyQLL- (1 4■厦目]
J 阻 LSMyDLL
> ■■引用
b 唱汁部娥吸鼠
岛 iSMyDLL
1
2
3
4
*kncl^d? rstdafj{. hr
t布
回
*
& f
*
9 ?
fl?
邹
&
X
口
枷〔口!>
英幅供I,Ctd + &hitft*X
洋垣为此范图慢J
紫辫表方更凌篝隹财姬W
七曲5?i.Wi“.gu/m
七瑜有项『□)■“!SHft+Ah+■&
f新it旋曲
为蝴d.?
ESICnCtrl+X
ftMiyiCtrl+c
Ctd+V
■除 2JM
F2
g:R)
6
7
3、查看项目属性:配置属性 ->C/C++ ->预处理器-> 预处理定义:已经自动加上
MY15MYDLL_EXPORTS ”,把它修改成“ EXPORT_DLL ”,不修改也是可以的,只是字符串比较
长而已,应用并确定。
ISIWyDLL届性页
L
iES?: j iSSKDebug)▼
平舍吟|活动(Win词
▼ 建彩
-
」配宜厚性
▲
WIN 32;_DEBUG^I¥15 MVDLL_EXPORTsj_ WINDOWS;
敏淆观理踞定爻
隅试
取消所有茂处理器取
VC + +目最
包略标准艮含器径
J C/C+ +
香
保留遂
否
辱言
TOC \o "1-5" \h \z ,平台活动(Win32),
'
WIN32;_DEBUq£XPORT DLL; WlNDOWftJ
睇鞭也理器定义
取消所有预处理矗定义否
忽略标淮包含路径吾
预处理至坟件否
预处理耽思示行与否
保留注释否
4、在头文件中,写入代码:
#ifndef EXPORT_DLL〃如果没有在项目配置属性->C/C++ ->预处理器定义了 “EXPORT_DL L
#define EXPORT_API__declspec (dllimport ) 〃宏定义 __declspec(dllimport)为EXPORT_API 即为导入,从 DLL
中导入到应用程序
#else//否则(如果在于处理器定义了 EXPORT_DLL
#define EXPORT_AP__declspec (dllexport ) //EXPORT_API 被定义成导出 __declspec(dllexport),从 DLL中输出
变量、函数或类等
#endif // !EXPORT_DLL
添加全局变量、函数和类:
ISMyDLLh 也 X
LJMyDLLcpp
〃■导出一个地-的PQEtLiPt
〃■导出一个地-的PQEtLiPt眼在矣名前,在关迎军ulun后
extern EXPORT_APfloat const PII = 3.14159;
J宣a定如-[?
FSirndfif 皿■旌顶I果浚有在哧目帽 因性可豌涅暗毫3 " ESP0R7JILL "
Sdefine__de71 spec (dllinpart) //£eS<__tec cdllinport>
£ If else扪哲则E而果在于处曜器定只了皿:
#如霓m E1PQRT.2PI __dEel5p?(diisaper