如果包含lib,运行时是否需要dll?

时间:2011-06-06 15:30:33

标签: c++ dll linker

我想创建一个使用RAPI的.dll(在C ++中)。为此我创建了visual studio项目,然后我将其他include目录设置到我需要“rapi2.h”的地方,以及rapi.lib所在位置的附加链接目录。

然后我使用我创建的.dll文件编写另一个应用程序。这种方法工作正常,但在运行时我需要在运行我的应用程序的计算机上存在rapi.dll。

有没有办法将.dll添加到另一个.dll中,而第一个在运行时不需要?

也许这是一个初学者的问题,但为什么我在运行时需要dll但是在编译时只有.lib和.h相关联?

1 个答案:

答案 0 :(得分:2)

您需要了解dynamic linking and static linking之间的区别。在您的情况下,lib只是一个导入库,不包含实际的可执行代码。这是在运行时动态链接的。