C++中调用dll的两种方式

本文介绍了在Windows下C++中调用动态库dll的两种方式:隐式调用和显式调用。隐式调用需要头文件、静态库文件.lib和.dll文件,而显式调用仅需.dll文件。详细阐述了两种调用方式的步骤,包括如何添加头文件路径、库文件路径,以及如何使用LoadLibraryEx和GetProcAddress等系统函数。还提到了函数名 mangling 的问题,强调在定义dll导出函数时使用extern "C"的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        Windows下调用C++动态库,即dll文件有两种方式:隐式调用和显式调用。以下以VS2013为编译环境说明。假如有一个项目TestDLL,产生的可执行文件名为TestDLL.exe,在这个工程中调用mydll.dll,mydll.dll对应的.lib文件名为mydll.lib。
        一 隐式调用
        这种调用方式需要编译动态库时用到的头文件、静态库文件(.lib),动态库文件(.dll)。
        这里的.lib文件只包含一些索引,即.dll文件中导出的变量或函数的符号名和可选的标识号,不包含具体的代码实现,具体的代码实现都在.dll文件中, 应用程序中对函数或变量的调用与.lib文件中的符号相匹配,这些符号或标识号被写入最终的可执行文件中,可执行文件运行时,就按照这些符号或标识号到.dll中寻找定义。.lib文件中也包含了对应的.dll文件名,但不是完全路径,链接程序会把这个.dll文件名写到可执行文件中,当应用程序运行过程中需要加载.dll文件时, windows根据这些信息发现并加载.dll, 然后通过符号名或标识符实现对dll函数的动态链接。所有被应用程序调用的.dll文件都会在应用程序加载时被加载到内存中。
        如果要完成源代码的编译,只需要.lib文件就可以了;如果要使可执行文件运行起来,只要有.dll文件就可以了,在编译和测试阶段,这两个文件最好都有。
        隐式调用步骤如下:
     &n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值