VC语言

本类阅读TOP10

·VC++ 学习笔记(二)
·用Visual C++打造IE浏览器(1)
·每个开发人员现在应该下载的十种必备工具
·教你用VC6做QQ对对碰外挂程序
·Netmsg 局域网聊天程序
·Windows消息大全
·VC++下使用ADO编写数据库程序
·VC++学习笔记(四)
·非法探取密码的原理及其防范
·怎样在VC++中访问、修改注册表

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
VC7.1环境下动态链接库的创建和调用

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

一、   动态链接库的创建示例
1.      选择VC.Net菜单项,选择文件->新建->项目,在弹出的新建项目的对话框中,选择项目类型为Visual C++ 项目,类别为MFC的工程,在右边的模板中,选择MFC DLL模板,给项目取名为TestDLL,选择好项目的位置,按确定健,进入应用程序设置。

2.       在应用程序设置中,我们可以看到,有三种DLL类型,它们依次对应着三类DLL。
                                            

        选择“使用共享的MFC DLL”。
3.     点击完成,得到TestDLL工程。
4.     在TestDLL工程中新增MyDll类,如下:
/*MyDll.h*/
#pragma once
class AFX_CLASS_EXPORT CMyDll
{
public:
 CMyDll(void);
 ~CMyDll(void);
 int Max(int a, int b);
};
/*MyDll.cpp */
#include "StdAfx.h"
#include ".\mydll.h"
CMyDll::CMyDll(void)
{
}
CMyDll::~CMyDll(void)
{
}
int CMyDll::Max(int a, int b)
{
 if( a>=b )
  return a;
 else
  return b;
}
5.     在TestDLL工程中新增MyDllH.h,如下:
/*MyDllH.h*/
#pragma once
#pragma once
#include "MyDll.h"
#ifdef _AFXDLL
#ifdef _DEBUG
#define _MD_COMMENT "testdllD.lib"
#define _MD_MESSAGE "Automatically linking with testdllD.dll"
#else
#define _MD_COMMENT "Rtestdll.lib"
#define _MD_MESSAGE "Automatically linking with testdlll.dll"
#endif
#endif
#pragma comment(lib, _MD_COMMENT)
#pragma message(_MD_MESSAGE)
6.      设置TestDll工程的Property,如下:
General->OutPut Directory                                    ..\..\Debug
Linker->General->OutPut File                               $(OutDir)/testdllD.dll
Linker->Advance->Import Library                        $(OutDir)/testdllD.lib
7.      修改TestDll.def,如下:
; testdll.def : Declares the module parameters for the DLL.
;LIBRARY      "TestDll"
EXPORTS
    ; Explicit exports can go here
8.     Build TestDll。得到TestDll.dll和TestDll.lib位于..\..\debug目录下。

二、    动态链接库的调用示例
1.     创建MFC Application 中的Dialog Based应用程序,得到TestDllApply工程。
2.     在TestDllApply工程中的stdafx.h中添加一项:
#include "MyDllH.h";
3.     添加对话框中“确定”按钮的消息响应函数,如下:
void CMyDllApllyDlg::OnBnClickedOk()
{
 // TODO: Add your control notification handler code here
 CMyDll  myDll;
 int i = myDll.Max(2,9);
 OnOK();
}
4.        设置TestDllApply工程的Property,如下:
General->OutPut Directory                                                            ..\..\Debug
C++->General->Additional Include Directories                              TestDll工程中MyDll.cpp所在目录路径
Linker->General->Additional Library Directories                           TestDll工程中Debug文件夹的目录路径
Linker->Input->Additional Dependencies                                      TestDll.lib
5.       编译、链接并运行TestDllApply工程,断点跟踪至int i = myDll.Max(2,9);语句,可以看到i的值是9。



相关文章

相关软件