文档下载:http://www.ctdisk.com/file/1758326
现在说说如何外部调用。新建一个调用该DLL的单文档工程Ower,现在Ower工程,在框架类CMainFrame类定义一个CCustomManage2类的私有变量:
- private:
- CCustomManage2m_CustomManage2;
然后新建一个菜单项,在菜单项的命令响应函数里弹出新建窗口,具体代码如下:
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4
下面谈谈如何销毁窗口防止内存泄露。这时我们需要考虑用户是怎么关闭新建窗口,用户就是要么是单击调用程序的关闭按钮把两个窗口都关闭;要么单击DLL弹出的新建窗口的关闭按钮。用户先关新建窗口,再关闭调用程序,这个是没有内存泄露的。但是如果用户一下关闭应用程序(就是同时关闭两个窗口),就会出现内存泄露。为此我们需要重写CMainFrame类的WM_CLOSE消息:
这样就可以确保内存没有泄露。效果图如下:
上面可以看作是在DLL封装了一个单文档程序。从这个角度看,这种方式比动态新建窗口看起来更为自然一下。另外举一反三,可以封装MDI程序,只须将上面的自定义的文档模板类派生自CMultiDocTemplate。有兴趣的朋友可以去做一下。
使用DLL封装框架视图的意义在哪里呢?其实是可以应对更多样的需求,很多时候仅仅是对话框并不满足需求,比如图像处理软件中往往是多视图的,当然也可以在对话框绘图,但感觉不如在视图类画图方便,对话框没有大小化窗口的按钮,这也是一个缺点。在一个大系统里,使用DLL封装框架视图可以很方便地将多个业务逻辑划分为多个模块,开发起来更为方便。
教程下载
分享到:
相关推荐
DLL封装框架视图的示例代码,方式一 动态创建窗口,方式二 新建文档模板
多文档框架视图封装在dll中,有利于系统的模块化开发,非“dll封装多文档框架视图的例子”,无BUG
和之前上传资源不同的是,该项目不是通过7z命令行进行文件压缩,而是从7z源码lzma920直接封装而来的C++ DLL,可直接使用。
DLL接口封装三层数据库,三层数据库代码 还不错 可以拿来学习 希望对大家有用-Three databases can be used to learn the code is not bad
本资源为C++开发调用7z源码程序,其中,我已封装成了dll程序,下载可直接调用。本程序功能可实现指定文件夹中的多个文件压缩到一个指定文件夹中。该资源是修改之前上传资源后,有人反映缺少文件不能使用的问题。之前...
将文档视图类封装成dll文件,附C++实例,可在VC下运行
c# dll封装以及调用
将dll封装成ocx说明文档, 将dll封装成ocx说明文档
dll文件封装成OCX控件,当然其中也有对dll的调用,其实是c++制作OCX的文档
用VB生成DLL封装ASP代码_连接数据库,调用站点外部的数据
DLL插件的完整代码和EXE,借鉴了咏南工作室的Delphi插件框架(在此表示感谢),本人加入了MDI窗体实现功能,DLL窗体之间通讯的功能,DLL窗体和主框的通讯功能。希望对大家有所帮助
在软件开发设计中,为了更好的封装代码,实现代码版权的保护等等,很多需要将代码封装成DLL文件。
DLL封装Excel的读写功能,上次传错了,不好意思!里面有调用的例子
DLL封装Excel的读写功能VC++6.0源码
反编译dll源代码,查看dll封装的代码
用接口实现了DLL封装对象,包括DLL文件本身与它的调用;在delphi7中调试通过;
delphi dll hook框架 用于注入游戏
一个使用dll中的文档视图类的例子: 将文档视图类封装到dll中,由应用程序调用. 程序内容: 1.dll源代码; 2.demo程序代码.
WPF封装成DLL方法
dll封装MFC对话框资源,博客中的源码工程。可以参看dll的资源封装以及使用。