vs2010的mfc 程序已经做好 怎么把他封装成动态库

vs2010的mfc 程序已经做好 怎么把他封装成动态库,第1张

vs2010的mfc 程序已经做好需要将 MFC 中的类 封装 为一个Dll并导出。

将 MFC 中的类 封装 为一个Dll并导出 封装 Dll类 打开VC6.0,file->new->Projects-> MFC AppWizard [dll],输入Project name 为pipeDll。

下一步,选择 MFC Extension DLL(using shared MFC DLL),features选择. MFC 应用 程序 打包。

从库的创建到调用过程。MFC封装功能成动态库相关问题汇总记录

基本的创建过程可以从很多地方查询得到,这里主要记录在VS2017 Debug X86开发过程中发生的各种异常问题解决。

无法定义 dllimport 实体 Password。

使用AFX_EXT_CLASS定义声明类。

注意在项目属性->C/C+±>预处理器中,预处理器定义_AFXEXT;删除_USRDLL。

调用动态库显示动态库窗体得到句柄为空且无法显示窗体。

_USRDLL:静态方式链接MFC库,这样子的话本身MFC的库中带有_DllMain函数的定义。

_AFXDLL:动态方式链接到MFC库,这样子的话,调用侧dll需要自己定义_DllMain入口函数。

可知需要定义_DllMain入口函数,在此我创建dllmain.cpp文件来定义_DllMain入口函数。

其实mfc是非常“整齐”的,理解mfc的框架的核心是理解oop(面向对象)的编程思想,mfc并不是被函数封装起来,而是使用了oop的思想以类的形式封装了函数(win32api)。可以简单理解整个mfc架构是:oop→类→函数,其代码形式就是类序列(很简单吧,说白了就是类串。)

。之所以楼主感觉函数有些乱,基于两个原因:1没有理解oop编程模型,从而没有体会到整个代码其实就是类序列,还停留在c语言式的结构化编程(sp)思维

2

对封装了win32函数的类没有足够的了解。做个比较把,如果说win32(c语言式)代码结构总体理解为函数序列,那么mfc(c++)整体代码结构就是类序列,mfc调用类实现程序功能,win32调用api实现程序功能。不明白的地方可以追问,望采纳,呵呵。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11743134.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存