字体
第(4/5)页
关灯
   存书签 书架管理 返回目录
 录或Windows 系统目录下。

    使用显式链接应用程序编译时不需要使用相应的LIB 文件。另外,使用GetProcAddress()

    函数时,可以利用MAKEINTRESOURCE()函数直接使用DLL 中函数出现的顺序号,如将

    GetProcAddress(hDLL,"Min") 改为GetProcAddress(hDLL,MAKEINTRESOURCE(2)) ( 函数

    Min()在DLL 中的顺序号是2),这样调用DLL 中函数的速度将会很快,但是要记住函数的使

    用序号,否则会发生错误。

    10.4 开发DLL

    在Visual C++6.0 开发环境下,打开“FileNewProject”选项,可以通过选择Win32

    Dynamic-Link Library 或MFC AppWizard[dll]的不同方式来创建Non-MFC Dll、Regular Dll、

    Extension Dll 等不同种类的动态链接库。

    10.4.1 创建Non-MFC DLL 动态链接库

    每一个DLL 必须有一个入口点,这就像用C 编写的应用程序一样,必须有一个WinMain

    函数一样。在Non-MFC DLL 中DllMain()是一个默认的入口函数,不需要编写自己的DLL

    入口函数,用DllMain()函数就能使动态链接库在被调用时得到正确的初始化。如果应用程序

    的DLL 需要分配额外的内存或资源时,或者说需要对每个进程或线程初始化和清除cāo作时,

    需要在相应的DLL 工程的CPP 文件中对DllMain()函数按照下面的格式编写。

    BOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)

    {

    switch( ul_reason_for_call )

    {

    case DLL_PROCESS_ATTACH:

    .......

    case DLL_THREAD_ATTACH:

    .......

    case DLL_THREAD_DETACH:

    .......

    case DLL_PROCESS_DETACH:

    .......

    }

    return TRUE;

    }

    关于DllMain()函数,在10.2.1 节中已经作了详细介绍,这里不再赘述。DLL 是包含若

    枫叶文学网www.fywxw.com

    Visual C++ 6.0 程序设计从入门到精通

    ·260·

    干个函数的库文件,应用程序使用DLL 中的函数之前,应该先导出这些函数,以便供给应用

    程序使用。要导出这些函数有两种方法, 一是在定义函数时使用导出关键字

    _declspec(dllexport),另外一种方法是在创建DLL 文件时使用模块定义DEF 文件。需要读者

    注意的是在使用第一种方法的时候,不能使用DEF 文件。下面通过两个例子来说明使用这两

    松语文学免费小说阅读_www.1
上一页 目录 下一页