VC
创建动态库及其使用方法简介
这里介绍的
VC
创建
DLL
的方法是最简单也是最常用的方法,创建的基本过程就象下面介绍的这样简单。调用
DLL
的方法,随不同的开发语言有所不同,但是基本上分为静态调用和动态调用。最常用的也就是静态调用用,如果想了解动态调用
DLL
以及
DLL
相关高级话题,请参考其他资料,这些内容不在本章探讨内容之中。
一.
VC
创建动态库的过程
Step1:
首先创建工程,类型为
”Win32 Dynamic-Link Library”
。然后可以选择
”A Empty DLL Project”
。
Step2:
首先创建头文件,本例为
”DllExample.h”
,内容如下:
#ifndef
_DLLEXAMPLE_H
#define
_DLLEXAMPLE_H
#ifdef
__cplusplus
extern
"C"
{
#endif
int
_stdcall
jisuan
(
int
iFirst,
int
iSecond
);
#ifdef
__cplusplus
}
#endif
#endif
NOTICE
:
在创建自己的
DLL
头文件过程中,您只需要把
(1)
#ifndef
_DLLEXAMPLE_H
#define
_DLLEXAMPLE_H
修改成您自己的头文件的名称
(2)
int
_stdcall
jisuan
(
int
iFirst,
int
iSecond
);
部分替换成您的接口函数,其它部分可以复制使用。
Step3:
其次创建
.pp
文件,也就是实现文件。本例实现如下:
#include
"DllExample.h"
int
_stdcall
jisuan(
int
iFirst,
int
iSecond
)
{
int
sum = 0;
sum = iFirst + iSecond;
return
sum;
}
NOTICE:
要包含头文件,如果您的接口函数实现过程中需要其它的头文件,也都在这里包含进去。
Step4:
创建
def
文件,此文件是
DLL
输出您所实现的所有函数接口的。创建时选择
”Text File”
创建的文件后缀名是
.def
。本例内容如下:
LIBRARY "DLLEXAMPLE"
DESCRIPTION "A Dll Example"
EXPORTS
Jisuan
NOTICE
:
(1)
您只需要把
LIBRARY "DLLEXAMPLE"
,修改成您的
DLL
名称。
(2)
EXPORTS
下,只列出函数名称,而不包含其参数等。
按照以上方式创建的
DLL
,是其他任何语言都可以调用的,基本的过程如上所述,其实很简单。
二
.
应用程序调用
DLL
的方法
这里我是用
VC
创建了一个很简单的应用程序,其实就一个按钮,来调用。
代码如下:
int
i = 4;
int
j = 5;
int
sum;
CString temp;
sum = jisuan(4,5);
temp.Format(
"%d"
,sum);
MessageBox(temp);
这里用的是静态调用,因此只需要把动态库的
DLL
文件,
LIB
文件和头文件拷到需要调用动态库的应用程序当前目录下就可以了。另外需要注意的是
VC
,还需要用
”Project->Add to Project->Files”
把
LIB
文件和头文件添加到应用程序,否则会报找不到动态库的错误。
基本情况就是这样,其他编程平台的调用方法可能有所不同,但是大同小异。另外一个需要注意的问题是,当其他语言需要调用
C
编写的动态库时,需要进行类型转换,这些内容将另外讨论。