字体
第(1/4)页
关灯
   存书签 书架管理 返回目录
    种方法创建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 的静态链接库,生成的
上一章 目录 下一页