将库和dll包含到c+中+;项目 我有一个第三方库(比如,tp.LIB)和第三方DLL(比如,T.DLL),我需要在我的C++项目中使用(我的项目生成一个DLL,我们称之为My.DLL)。

将库和dll包含到c+中+;项目 我有一个第三方库(比如,tp.LIB)和第三方DLL(比如,T.DLL),我需要在我的C++项目中使用(我的项目生成一个DLL,我们称之为My.DLL)。,c++,visual-studio-2010,dll,dynamic-linking,C++,Visual Studio 2010,Dll,Dynamic Linking,我在头文件中包含了带有#pragma注释(lib,“libraryname”)的库 还包含了CudioTysProtox:Link中的库文件路径>我的C++ VisualStudio项目中的附加库目录。< /P> 代码编译和链接正常。但未能执行。当我使用depends检查是否丢失了某些内容时,我发现没有找到tp.dll。tp.dll位于tp.lib所在的库文件夹中 我应该怎么做才能将tp.dll包含到my.dll中?运行时的搜索路径不包括放置库的文件夹,因此将dll与库一起放置不会使操作系统在运

我在头文件中包含了带有#pragma注释(lib,“libraryname”)的库 还包含了CudioTysProtox:Link中的库文件路径>我的C++ VisualStudio项目中的附加库目录。< /P> 代码编译和链接正常。但未能执行。当我使用depends检查是否丢失了某些内容时,我发现没有找到tp.dll。tp.dll位于tp.lib所在的库文件夹中


我应该怎么做才能将tp.dll包含到my.dll中?

运行时的搜索路径不包括放置库的文件夹,因此将dll与库一起放置不会使操作系统在运行时找到它。您可以将其添加到路径或移动DLL。这个

您不能“将dll包含到另一个dll中”。您需要将它们一起部署,或者将依赖项dll放在一个地方。

dll具有不同的搜索路径。以下引述自:

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

  • 当前进程的可执行模块所在的目录

  • 当前目录

  • Windows系统目录。GetSystemDirectory函数检索此目录的路径

  • Windows目录。GetWindowsDirectory函数检索此目录的路径

  • PATH环境变量中列出的目录

  • 注 未使用LIBPATH环境变量


    是否要将tp.dll静态链接到my.dll,以便只部署my.dll,所有代码都将在那里?或者您是否可以同时部署tp.dll和my.dll,并且应用程序执行时不会出错?我想静态链接tp.dll。所以我唯一要做的就是部署我的.dll。我如何才能做到这一点?当你说“一起部署它们”时,怎么做?只需将它们复制到同一个文件夹中,即提供的链接中的第1点)