动态链接库-Win32 DLL的创建和使用

摘要

       利用Visual C++6.0创建和使用DLL(Dynamic-Link Library).

概述

   在实际编程时,我们可以把完成某种功能的函数放在一个动态链接库中,然后给其他程序调用。

   WinAPI中所有的函数都包含在3个最重要的DLL中。

      • Kernel32.dll

        它包含那些用于管理内存、进程和线程的函数,例如CreateThread函数;

      • User32.dll

        它包含那些用于执行用户界面任务的函数,例如CreateWindow函数;

      • GDI32.dll   

        它包含那些用于画图和显示文本的函数。

用法 

 新建一个Win32 Console Application工程:

以MathLib为工程名称新建Win32 Dynamic-Link Library的空工程,

添加C++ Source File 源文件到工程中,命名为MathLib.c

添加以下代码:

 1 #define MATH_API _declspec(dllexport)
2 #include "MathLib.h"
3 int add(int a,int b)
4 {
5 return a+b;
6 }
7 int subtract(int a,int b)
8 {
9 return a-b;
10 }

添加C/C++ Header File 头文件到工程中,命名为MathLib.h

1 #ifdef MATH_API
2 #else
3 #define MATH_API _declspec(dllimport)
4 #endif
5 MATH_API int add(int a,int b);
6 MATH_API int subtract(int a,int b);

编译后生成MathLib.dll和MathLib.lib两个动态链接库文件。

测试

  • 隐式调用

 

新建MFC AppWizard[exe]可执行工程DllTest,用于测试刚才新建动态链接库MathLib的功能。

复制MathLib.dll,MathLib.lib,MathLib.h到当前工程,

在DllTestDlg.cpp中添加头文件引用:

 

#include "MathLib.h"

 

添加MathLib.h头文件至工程,

 

在Project->Setting->Link->object/library modules:添加MathLib.lib

 

添加一个按钮Add到Dialogue中,在Add按钮的响应函数中添加以下代码:

 

1 void CDllTestDlg::OnBtnMath() 
2 {
3 // TODO: Add your control notification handler code here
4 CString res;
5 res.Format("10+2=%d",add(10,2));
6 MessageBox(res);
7 }

编译运行程序,

 

 

成功运行MathLib中的加法功能。

工程文件:

 

 

 

 

 

 

 

 

      

posted @ 2012-02-18 14:38  璇星  阅读(9187)  评论(0编辑  收藏  举报