动态链接库笔记

1.加载动态链接库文件的方式有两种: 显式加载, 隐式加载

2.vc6自带的工具可以查看动态链接库文件的信息
    命令行工具dumpbin
        dumpbin -exports xxx.dll  //查看导出函数

        dumpbin -imports xxx.exe  //查看exe文件的导入表信息

3.导出函数的格式
    _declspec(dllexport) int add(...);


4.导出函数的时候, 名字会被改编, 有几种方式可以使函数名字不发生改编
    最好的方法是定义一模块文件 *.def
    新建def文件, 添加到工程, 格式如下:
        LIBRARY xxx (xxx为dll内部名称)
        EXPORTS
        要导出的函数名, 如add

5.导入函数的格式
    _declspec(dllimport) int add(...);

6.动态加载链接库文件的方法
    用LoadLibrary, GetProcAddress
    LoadLibrary()
    GetProAddress(..., "add")
    typedef int (*Fun)(int a, int b);
    Fun fun = (Fun)GetProAddress(..., "add")

    注:如果有显示说明调用约定的话:
        typedef int (_stdcall *Fun)(int a, int b)  //(_stdcall这个约定也可能是其它)

7.DllMain这个是动态链接库的入口函数, 相当于CUI程序中的main, GUI程序中的WinMain

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值