字体
第(1/5)页
关灯
   存书签 书架管理 返回目录
    下,

    这个名字必须与定义函数的名字完全一致,如此就得到一个没有任何修饰的函数名。

    ? 可以使用DEs criptION 语句描述DLL 的用途(此句可选);

    ? ";"对一行进行注释(可选)。

    10.5 动态链接库中的资源

    利用Visual C++工具能够创建基于MFC 的常规/扩张动态链接库,这种形式的动态链接

    库可以方便地添加资源。应用程序在调用DLL 的时候可以很方便地使用其中的资源,这在很

    大程度上方便了应用程序的编写。为了使读者理解在动态链接库中使用资源的方法,本节将

    通过在动态链接库中添加对话框资源来介绍使用资源的具体过程。

    实例10-1:动态链接库中使用资源实例。源代码在光盘中“\10\实例10-1\vcDlgDLL”目录下。

    为了能够在动态链接库中方便地使用资源,可以先创建一个“MFC AppWizard(dll)”工

    程,如图10-4 所示。然后选择“Regular Dll using shared MFC DLL”项,单击“Finish”按钮

    即可生成动态链接库。

    图10-4 生成Regular Dll using shared MFC DLL

    枫叶文学网www.fywxw.com

    第10 章 动态链接库

    ·265·

    添加一个对话框资源到工程中,从菜单中依次选择“Insert”→“Resource”项,添加“Dialog”

    选择“New”项,至此对话框已添加到DLL 工程中。

    为对话框添加CTest 类,基类为CDialog。同时在MFCDLL.cpp 中(因创建的工程为

    MFCDLL)添加测试接口函数如下:

    extern "C" __declspec(dllexport) void Show()

    {

    AFX_MANAGE_STATE(AfxGetStaticModuleState());

    CTest test;

    test.DoModal ();

    }

    静态连接到MFC 的动态链接库只被Visual C++的专业版和企业版所支持。该类DLL 应

    用程序里头的输出函数可以被任意的Win32 程序使用,包括使用MFC 的应用程序。输入函

    数有如下形式:

    extern "C" EXPORT YourExportedFunction();

    如果没有extern "C"修饰,输出函数仅仅能从C++代码中调用。

    DLL 应用程序从CWinApp 派生,但没有消息循环。

    动态链接到MFC 的规则DLL 应用程序里头的输出函数可以被任意Win32 程序使用,包

    括使用MFC 的应用程序。但是,所有从DLL 输出的函数应该以如下语句开始:

    AFX_MANAGE_STATE(AfxGetStaticModuleState())

    此语句用来正确地切换MFC 模块状态。

    因为一般在动态链接库中使用嵌入资源是通过动态链接的,所以测试接口函数作了上述

    程序片断的声明和定义。

    在要输出的函数、类、数据的声明前加上_
上一章 目录 下一页