欢迎访问:常州市武进区嘉泽中心小学网站 !今天是:
栏目列表
您现在的位置是:首页>>教师>>计算机技术>>程序设计>>杂项>>文章内容
VC7.1环境下动态链接库的创建和调用
发布时间:2008-11-20   点击:   来源:本站原创   录入者:佚名
  一、   动态链接库的创建示例
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。

附件:
    关闭窗口
    打印文档
    账号登录
    保持登录 忘记密码?
    账号与武进教师培训平台同步