包括库和dll到c ++项目

时间:2012-10-10 15:33:44

标签: c++ visual-studio-2010 dll dynamic-linking

我有一个第三方库(比方说,tp.lib)和我需要在我的C ++项目中使用的第三方dll(比方说,tp.dll)(我的项目制作了一个dll,我们称之为my.dll )。

我在头文件中包含了带有#pragma comment(lib,“libraryname”)的库  还包括我的C ++ Visual Studio项目中 configurationproperties-> linker->其他库目录中库文件的路径。

代码编译和链接没关系。但未能执行。当我使用依赖检查我是否遗漏了某些东西时,我发现找不到tp.dll。 tp.dll驻留在tp.lib所在的同一个库文件夹中。

我该怎么办才能将tp.dll包含在my.dll中?

3 个答案:

答案 0 :(得分:1)

DLL具有不同的搜索路径。引用下面的docs

  

通过隐式和显式链接,Windows首先搜索“已知DLL”,例如Kernel32.dll和User32.dll。 Windows然后按以下顺序搜索DLL:

     
      
  1. 当前进程的可执行模块所在的目录。

  2.   
  3. 当前目录。

  4.   
  5. Windows系统目录。 GetSystemDirectory函数检索此目录的路径。

  6.   
  7. Windows目录。 GetWindowsDirectory函数检索此目录的路径。

  8.   
  9. PATH环境变量中列出的目录。

  10.         

    请注意   不使用LIBPATH环境变量。

答案 1 :(得分:0)

运行时的搜索路径不包含放置lib库的文件夹,因此将DLL与lib放在一起并不会使操作系统在运行时找到它。您可以将其添加到路径,或移动DLL。 list of search precedence is on MSDN。{{3}}。

答案 2 :(得分:0)

你不能“将dll包含在另一个dll中”。您需要将它们一起部署,或将依赖项dll放在Windows will find it

的位置
相关问题