万星星@豌豆荚 欢迎加入我们
一个吃软饭的男人!!!!!我只想写程序####
微博:http://weibo.com/wanlianwen
posts - 172,  comments - 1253,  trackbacks - 0

每次都为dll书写烦恼,书写模式其实是固定的,下面就一步一步完全实现一个动态库。
1、选择MFC AppWizard(dll),项目名Demo,默认完成
2、新建一h文件DemoExp.h,导出模块所有接口,新建一cpp实现接口
3、在DemoExp.h中:
// 下面两行防止重复包含
#ifndef _DEMOEXP_H   (注:可以是任意的)
#define _DEMOEXP_H

// 下面一行预定义,在编译的时候定义_DEMOEXP把函数导出,调用的时候没有定义则导出函数
#ifdef _DEMOEXP   (注:可以是任意的)
#define DEMOEXPAPI __declspec(dllexport)
#else
#define DEMOEXPAPI __declspec(dllimport)
#endif

// 导出函数接口
DEMOEXPAPI int ShowDlg();

// 调用的时候没有定义则自动连接
#ifndef _DEMOEXP   (注:和上面一样)
 #pragma comment(lib, "Demo.lib")
#endif

#endif

4、在DemoExp.cpp中先空实现:
#include "StdAfx.h"
#include "DemoExp.h"

DEMOEXPAPI int ShowDlg()
{
 return 0;
}
5、添加一对话框,并生产类CDemoDlg类
6、在DemoExp.cpp中:
#include "DemoDlg.h"
修改函数如下:
DEMOEXPAPI int ShowDlg()
{
 // 切换资源模块
 AFX_MANAGE_STATE(AfxGetStaticModuleState());

 CDemoDlg dlg;
 dlg.DoModal();
 return 0;
}
7、设置Setting->c/c++->Preprocessor definitions:添加,_DEMOEXP;stdafx.h中添加#include "Resource.h"
8、编译即生产dll
9、添加一对话框程序测试,具体见示例代码。

posted on 2006-02-13 23:32 万连文 阅读(942) 评论(2)  编辑 收藏 引用 所属分类: MFC

FeedBack:
# re: MFC DLL实战
2006-07-26 22:08 | 遍历红尘
非常谢谢你的这篇文章,以后请客。  回复  更多评论
  
# re: MFC DLL实战
2008-02-01 11:46 | 裁缝
感激死了,有源码, o(∩_∩)o..  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


简历下载
联系我

<2006年7月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

常用链接

留言簿(66)

随笔分类

随笔档案

相册

搜索

  •  

最新评论

阅读排行榜

评论排行榜