Visual Studio中的静态库与DLL

Mad*_*adz 2 c++ dll visual-studio-2010 vtk visual-studio-2012

我已经使用dll和.lib文件在计算机中构建了VTK。当我想创建一个使用VTK的项目时,必须在项目属性中包括头文件和链接.lib文件。另外,我还必须将.dll文件添加到项目路径中。我对此有几个问题,

  1. .libs和.dll文件有什么区别?
  2. 是否可以仅使用.dll或.lib文件来创建项目。(我可以链接.lib文件而不将dll添加到路径或将dll添加到路径并且不链接.lib文件)?

如有任何解释,我将不胜感激。谢谢。

Bo *_*son 5

  1. 链接器使用.lib文件来解析导入的项目。.dll文件包含在运行时动态加载的代码。

  2. 如果您有静态库,则它包含所有需要的代码,并且没有.dll。如果您有.dll,则还需要随附的.lib才能正确链接。


can*_*ope 5

.lib 文件仅在编译期间由链接器使用。而 .dll 文件则由编译后的 exe 在执行过程中使用。换句话说,编译程序后,您不再需要 .lib 文件。打包软件进行分发时,您只需要 .exe、.dll 以及任何未打包到 exe 中的资源。