当您的外部SDK仅具有.dll,.lib,.h文件时,如何链接和构建项目
How to link and built a project when your external SDK only has .dll, .lib, .h files
我有一个外部SDK,仅包含.dll,.lib和.h文件。我正在尝试使用SDK。DLL中没有任何内容可读,但是.H文件对这些方法有一些评论。我不是很精通C 。我假设我需要加载库,然后使用.H文件中定义的方法从DLL读取。正确?
我需要知道如何编写一个CPP项目,可以在其中链接所有这些文件,读取DLL并能够使用SDK中定义的方法。在项目设置的情况下,是否有一个测试项目,我可以看到如何完成?任何帮助将不胜感激。
有几种实现此目的的方法,包括使用#pragma
的快捷方式方法,即我 not 会建议您养成贫困习惯。<<<<<<<<<<<<<</p>
同样,您可以使用属性表,但这似乎有些不知所措。因此,我将为您提供标准的中途方法...
在您的项目设置(alt-f7或 project> properties ... )中,您需要设置以下选项:
-
C/C >常规>附加目录
使用
#include
指令时要添加要搜索的文件夹。不用个人喜好和样式考虑的考虑,只需将其设置为SDK标头文件寿命的目录即可。您可以使用绝对或相对路径,环境变量。任何。我建议您现在只使用绝对路径。
-
Linker>常规>其他库目录
与上面相同,但这是 .lib 居住的地方。
-
链接器>输入>其他依赖项
这是您的lib文件的名称。
现在,如果您在项目源中#include
SDK的标头文件并编译,则希望它能起作用。链接步骤也应该成功。
如果没有,则可能需要额外的内容才能使SDK播放不错(例如预处理器定义,编译器设置或其他依赖关系)。
您需要担心的最后一件事是,运行程序可能会失败,因为无法找到DLL,除非它生活在Windows搜索的特定位置。您可以使用A 构建事件将DLL复制到构建可执行文件的同一目录。
仍然在项目属性中:
-
构建事件>构建事件
添加命令行类似于:
copy "PathToMySDKMySDK.dll" "$(OutDir)"
现在,您应该全力以赴,而不必再考虑一下!
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- CMake-按正确顺序将项目与C运行时对象文件链接
- 从链接列表c++中删除一个项目
- 有根的二进制搜索树.保留与其父级的链接
- 读取文件的最后一行并输入到链接列表时出错
- 静态数据成员的问题-修复链接错误会导致编译器错误
- node-gyp 在 macOS 上未正确链接库
- 基于boost的程序的静态链接——zlib问题
- 无法链接 CMake 中的本地库
- 内联函数中具有内部链接的全局变量
- 链接阶段在Ubuntu上失败,但在MacOS上失败
- 在链接链接静态(GSOAP)库的共享库时,为什么会得到一个未定义的符号
- 预制链接链接到共享库不起作用
- 未定义的参考,但链接链接
- 链接链接器/加载器错误时"undefined reference to ..."与拉斯皮康库链接时
- 多次使用SetWindowsHookEx取消挂接挂接集会导致挂接进程崩溃
- 将Typedef语句放入类链接链接列表中的C 错误
- GTEST测试项目链接链接到其他可执行文件
- 链接到链接到另一个共享库的共享库会在退出时出错
- 链接到链接到库的库