实现MFC扩展DLL中导出类和对话框
Posted on 八月 16rd, 2007 由 admin
热门问答:
推荐阅读
| · 摄像手机完全接触 使用中的注意事项 |
| 摘要:一、不要偷拍 由于摄像手机小巧玲珑,在不使用闪光灯的情况下,照相比较隐蔽,这就给某些别有用心的人提供了方便,致使有些人买摄像手机用来偷拍。笔者认为,此举十分不妥。偷拍不但是一种很不道德的行为,而且还是一种违反法律的行为,目前我国深圳市人大代表向深圳市公安局递交了一份...... |
| · 自欺欺人?amd认为迅驰品牌不怎么样新闻新品 |
| 摘要: 据称amd做了一个很全面的市场调查,得出了一个比较惊人的结论:其实intel的迅驰作为一个品牌也不是那么深入人心。·美丽接触海畅span芯r280靓图欣赏·入门用户必看!酷睿双核配置推荐·最低79911款x1650xt全面阻击76gt·难得一见 精英高端板ka3现身市场·“日光魔盒”解决3g手机用电尴尬 据称amd做了一个很全面的市场调查,得出了一个比较惊人的结论:其实intel的迅驰作为一个品牌也不是那么深入...... |
正文
如果要编写模块化的软件,就要对对动态链接库(dll)有一定的了解,本人这段时间在修改以前的软件时,决定把重复用的类和对话框做到dll中,下面就从一个简单的例子讲起,如何实现mfc扩展dll中导出类和对话框。
一、创建mfc扩展dll
步骤:
运行visual studio 6.0->file->new...->projects;
选择mfc appwizard(dll),在右边project name下输入exportclass,单击“下一步”;
选择mfc extension dll (using share mfc dll) 单击“finish”;
以上完成建立扩展dll的框架,下面接着建立输出类:
insert-> new class...在打开的对话框中,"class type" 选择"generic class",class name 中输入cdogclass(当然你可以用其它的名称,我喜欢小狗,所有用它了,在"base class"下输入cobject,然后"ok";为类添加两个测试用的变量 int m_nnum;cstring m_sdata;完全的类信息如下:
dogclass.h头文件:
编辑dogclass.h头文件修改下面一行;class afx_ext_class cdogclass : public cobject
以上完成类的建立,下面建立输出对话框;
insert-> resouce...新建立一个对话框,添加两个编辑框idc_edit1,idc_edit2,然后建立cdlgdog对话框类并为两编辑框添加int m_nnum和cstring m_sdata的变量。
在dogclass.cpp的#include "dogclass.h"下加入#include "dlgdog.h"
在dogclass类中添加int showdlg();函数用来调用对话框,并在int cdogclass::showdlg()中添加如下代码:
然后编译dll,会发现有几个错误,不用怕,好解决的。
首先,去掉dlgdog.cpp中的 #include “\ add additional includes here”这一行;其次,在stdax.h中加入include "resource.h",再编译,ok。
二、建立dll 测试程序
步骤:
新建一个基于对话框的mfc应用程序,添加一按钮idc_button1,并在按钮事件中添加如如下代码:
从exportclass文件目录拷贝dogclass.h和exportclass.lib文件到测试程序目录下;
在testexportclassdlg.cpp中加入#include “dogclass.h”行;往连接程序的导入库中添加exportclass.lib,在vs的project->settings下的setting for选择all configuration.,然后在下面的页面object/library conttrol中加入exportclass.lib;
别忘了把exportclass.dll复制到系统目录或当前应用程序目录;然后编译就ok了。


讨论区