c++ 动态库 显式加载 隐式加载

window API 动态库隐式加载方式。

//库函数定义
int add(int a,int b)
{
    return a+b;
}

 用户需要拿到库文档,文档记录了dll内的每个函数名和参数,利用函数指针指向库函数进行使用。

优点:dll库文件可以放入指定文件夹;无需引用头文件。

缺点:参数需要遵守文档函数内参数规则。 代码运行耗时(频繁加载卸载>加载卸载一次>显式式加载)

HINSTANCE hInst=LoadLibrary("dll_name.dll");//加载动态库获得句柄
typedef int(*fun_ptr)(int a,int b);//定义库内函数的指针
fun_ptr fp=(fun_ptr)GetProcAddress(hInst,"add");//获得函数句柄
FreeLibrary(hInst);//卸载库

显式加载优缺点则反之。

显示加载还需要头文件和.lib文件。

 #pragma comment(lib, "dll_name.lib")

linux隐式加载

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bug狂人

让我们和小姐姐唠嗑可以肢愣起来

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值