种方法创建DLL 文件的方法。
1.使用关键字_declspec(dllexport)
使用导出函数关键字_declspec(dllexport)创建MyDll.dll,该动态链接库中有两个函数,分别
用来实现得到两个数的最大和最小值。在MyDll.h 和MyDLL.cpp 文件中分别输入如下原代码:
//MyDLL.h
extern "C" _declspec(dllexport) int Max(int a, int b);
extern "C" _declspec(dllexport) int Min(int a, int b);
//MyDll.cpp
#include
#include"MyDll.h"
int Max(int a, int b)
{
if(a>=b)
return a;
else
return b;
}
int Min(int a, int b)
{
if(a>=b)
return b;
else
return a;
}
该动态链接库编译成功后,打开“MyDll”工程中的“debug”目录,可以看到MyDll.dll、
MyDll.lib 两个文件。LIB 文件中包含DLL 文件名和DLL 文件中的函数名等,该文件只是对
应DLL 文件的“映像文件”,比DLL 文件中LIB 文件的长度小,在进行隐式链接DLL 时要
用到它。在MyDll.h 中有关键字"extern C",它可以使其他编程语言访问所编写的DLL 中的
函数。
2.用DEF 文件创建工程
为了用DEF 文件创建DLL,请先删除上个例子创建的工程中的MyDll.h 文件,保留
MyDll.cpp 并在该文件中删除#include MyDll.h 语句,同时加入一个文本文件,命名为
MyDll.def,再添加如下代码:
LIBRARY MyDll
枫叶文学网www.fywxw.com
第10 章 动态链接库
·261·
EXPORTS
Max
Min
其中LIBRARY 语句说明该DEF 文件属于相应的DLL,可以在EXPORTS 语句下列出要
导出的函数名称。如果在DEF 文件中的导出函数后加@n,如Max@1 和Min@2,表示要导
出的函数顺序号,在进行显式连时可以用到它。该DLL 编译成功后,打开工程中的Debug
目录,同样也会看到MyDll.dll 和MyDll.lib 文件。
10.4.2 MFC AppWizard[dll]方式生成常规/扩展DLL
在MFC AppWizard[dll]下生成DLL 文件有3 种方式,在创建DLL 时,要根据实际情况
选择创建DLL 的方式。一种是常规DLL 静态链接到MFC,另一种是常规DLL 动态链接到
MFC。前者使用的是MFC 的静态链接库,生成的