DLL显式链接和隐式链接

隐式链接

使用时

-头文件

#include "..\DLLTest\MyDll.h"//dll头文件所在路径
#pragma comment(lib,"..\\debug\\DLLTest.lib")//lib所在路径
        //第1种.用这句代码,让编译器查看已获得的lib文件,同时让它顺便查看该目录的DLL头文件。
        //第2种.把自己写的DLL放到新项目相同的路径中。一般选择第一种

-调用语句

//直接调用DLL中定义的函数。比如我定义的 void TestDll(int);
TestDll(1);

显式链接

使用时

-头文件

#include <Windows.h>

-调用语句

    //在头文件后main函数前定义:
    typedef void (*Test)(int);    //一定是在DLL中定义的相同格式
    //在main函数中
    Test _Test;
    HINSTANCE hInstLib = LoadLibrary(_T("..\\debug\\DLLTest.dll"));  //加载dll
    //或者用LoadLibraryEx
    if (hInstLib == NULL)
    {
        FreeLibrary(hInstLib);  //释放动态链接库
    }
    _Test = (Test)GetProcAddress(hInstLib,"TestDll");//获取动态链接库中的函数地址
    if (_Test==NULL)
    {
        FreeLibrary(hInstLib);
    }
    _Test(1); //调用
图片发自简书App

-LoadLibrary(PCTSTR pszDLLPathName);
-LoadLibraryEx(PCTSTR pszDLLPathName,
HANDLE hFile,
DWORD dwFlag);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容