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
C++中调用dll的两种方式
最新推荐文章于 2025-05-26 23:17:31 发布