将库和DLL包含在C ++项目中
including library and dll into c++ project
我有一个第三方库(比如tp.lib)和第三方dll(比如tp.dll),我需要在我的C++项目中使用它(我的项目制作了一个dll,我们称之为my.dll)。
我在头文件中包含带有 #pragma 注释(lib,"libraryname")的库 并且还包括了库文件的路径,在我的C++ Visual Studio 项目中的配置属性->链接器->其他库目录中。
代码编译和链接正常。 但无法执行。当我使用依赖检查我是否缺少某些内容时,我观察到找不到tp.dll。tp.dll 驻留在 tp.lib 所在的同一库文件夹中。
我应该怎么做才能将 tp.dll 包含在我的.dll中?
DLL具有不同的搜索路径。 下面引用文档:
通过隐式和显式链接,Windows 首先搜索"已知 DLL",例如 Kernel32.dll 和 User32.dll。然后,Windows 按以下顺序搜索 DLL:
当前进程的可执行模块所在的目录。
当前目录。
窗口系统目录。GetSystemDirectory 函数检索此目录的路径。
窗口目录。GetWindowsDirectory 函数检索此目录的路径。
PATH 环境变量中列出的目录。
注意不使用 LIBPATH 环境变量。
运行时的搜索路径不包括放置库库的文件夹,因此将 DLL 与库放在一起不会使操作系统在运行时找到它。可以将其添加到路径中,也可以移动 DLL。搜索优先级列表位于 MSDN 上。
你不能"将 dll 包含在另一个 dll 中"。您需要将它们一起部署,或者将依赖项 dll 放在 Windows 可以找到它的位置。
相关文章:
- Visual Studio 中的 CMake 项目:如何添加其他包含和库目录?
- 在Visual Studio C++项目中包含源库的正确方法是什么?
- 如何将 jsoncpp 库包含在 unix 上的项目中?
- 如何在 c++ 项目中包含一个包含所有头文件?
- 如何将外部代码包含在虚幻引擎4 C++项目中
- CMake 如何强制third_party库将项目文件包含在当前项目源目录中?
- 我怎样才能简单地将opencv 包含在我的项目中与CMake
- 当包含头文件的文件不在根项目文件夹中时,如何包含它
- 是否可以在 Xcode C++项目中包含框架?
- 如何将 glfw 库包含在C++项目中?
- 如何在其他Visual Studio项目中包含CMake lib/projects?
- 相同的代码,不同的结果?从其他项目包含有什么问题?
- 如何有条件地为 Eclipse 中的交叉编译项目包含两个不同名称的相同版本的库
- 如何将boost项目包含在我的c++代码中
- C++项目 - 包含 SQL 类文件的位置
- Visual Studio: c++项目包含路径在存储库上共享
- Visual studio 2010安装项目包含不同体系结构的dll
- 如何在visual studio 2012中将一个项目包含到另一个项目中
- git clone修改eclipse C/ c++项目包含路径
- 项目包含的库文件多于dll文件