如何封装dll文件,dll怎么封装

  如何封装dll文件,dll怎么封装

  作者:朱

  资料来源:http://blog..net/clever101

  网上有很多关于VC编程中DLL封装对话框的资料。现在想探讨一下如何用DLL封装框架窗口、文档、视图,得出一些成果与大家分享。我发现了两种DLL封装框架视图的方法。其实用DLL封装框架视图涉及到两点:一是如何封装;第二是保证窗口被破坏后没有内存泄漏。(以下所有代码的开发环境为:VS C 2005 sp1,Win XP sp2)

  方法1:动态创建窗口。

  请不要误会,我不是指用C语言开发SDK动态创建窗口的方式。当然这是完全可以的,但问题是这种方式太复杂了。微软把MFC打包了,我们不用感谢微软。我使用API和MFC的组合。我们把调用DLL模块的程序称为宿主程序,把封装表单的DLL称为客户端程序。

  首先,我们使用共享MFC构建一个常规的DLL项目Custom1。我的基本想法是这样的:定义三个类:

  一般设计如下:在CCustomManage1类中定义一个CCustomFrameWnd1类的指针,在CCustomFrameWnd1类中定义一个CCustomView1类的指针。

  主要创建代码如下:

  为了防止内存泄漏,我们需要考虑如何防止窗口被破坏。为了更好地说明这个问题,我将首先构建一个调用DLL来说明这个问题的单文档project Ower。现在Ower项目的框架类CMainFrame类定义了CCustomManage1类的私有变量:

  然后新建一个菜单项,菜单项的命令响应功能会弹出一个新窗口。具体代码如下:

  这时我们需要考虑用户如何关闭新窗口,即用户点击调用程序的关闭按钮关闭两个窗口;或者单击DLL中弹出的新窗口的关闭按钮。那么我们在实现CCustomManage1类的DestroyFrameWnd函数时就需要考虑这一点,避免用户在关闭新窗口时先出错,再关闭调用程序,也就是保证关闭时窗口句柄有效。

  当然,你也可以测试工具栏是否可以加载到DLL的新窗口中,响应Windows的标准消息。我测试过了,没问题。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • windows10缺少dll文件,win10运行时出错无法找到指定dll库文件
  • ,,详解VS2019 dumpbin查看DLL的导出函数
  • ,,解决采集时出现msxml3.dll 错误的方法
  • ,,使用 JScript 创建 .exe 或 .dll 文件的方法
  • ,,VC++ loadlibrary()加载三方dll失败, 返回错误码-126的解决方法
  • .net dll加密,c++ dll 反编译
  • .net dll加密,c++ dll 反编译,保护.net中的dll文件方法(防止破解、反编译dll)
  • .dll是什么文件能不能删除,文件dll怎么删除
  • dll没有在指定的windows上运行,xlivedll没有在windows上运行
  • 删除linkinfo.dll操作无法完成,因为已经在打开,linkinfo.dll是病毒吗
  • python能封装成dll文件吗,python自己封装的类怎么调用
  • 无法定位序数4445于动态链接库libcurl.dll,无法定位序数4445于动态链接库
  • d3dx9-43.dll文件丢失,d3dx9_41.dll文件丢失
  • igfxsrvc.exe木马病毒,igfxsrvc.dll加载失败_1
  • 怎么用360修复dll文件,360 dll文件修复
  • 留言与评论(共有 条评论)
       
    验证码: