c++ - 当您的外部 SDK 只有.dll、.lib、.h 文件时如何链接和构建项目

标签 c++ visual-studio dll sdk dllimport

我有一个仅包含 .dll、.lib 和 .h 文件的外部 SDK。我正在尝试使用 SDK。 dll 中的任何内容都不可读,但 .h 文件对这些方法有一些注释。 我不是很懂 C++。我假设我需要加载库,然后使用 .h 文件中定义的方法从 dll 中读取。正确吗?

我需要知道如何编写一个 cpp 项目,我可以在其中链接所有这些文件、读取 dll 并能够使用 sdk 中定义的方法。 是否有一个带有项目设置的测试项目,我可以在其中查看如何完成此操作? 任何帮助将不胜感激。

最佳答案

有几种方法可以实现这一点,包括使用 #pragma 的快捷方法,我推荐这种方法,以防它导致您养成不良习惯。

同样,您可以使用Property Sheets,但开始时这似乎有点让人不知所措。因此,我将为您提供标准的中间方法...

在您的项目设置中(Alt-F7 或Project > Properties...),您需要设置这些选项:

  • C/C++ > 常规 > 附加包含目录

    在使用#include 指令时添加要搜索的文件夹。无需考虑个人喜好和风格,只需将其设置为 SDK 头文件所在的目录即可。

    您可以使用绝对或相对路径、环境变量。任何。我建议您现在只使用绝对路径。

  • Linker > General > Additional Library Directory

    同上,但这是 .lib 文件所在的位置。

  • 链接器 > 输入 > 附加依赖项

    这是您的 lib 文件的名称。

现在,如果您在项目的源代码中#include SDK 的头文件并进行编译,它应该可以正常工作。链接步骤也应该成功。

如果没有,您可能需要做一些额外的事情才能使 SDK 正常运行(例如预处理器定义、编译器设置或其他依赖项)。

您需要担心的最后一件事是运行您的程序可能会失败,因为无法找到 DLL,除非它位于 Windows 搜索的特定位置。您可以使用 生成后事件 将 DLL 复制到生成可执行文件的相同目录,而不是弄乱 DLL 搜索路径等。

还是在项目属性中:

  • 构建事件 > 构建后事件

    添加如下命令行:

    copy "\Path\To\MySDK\MySDK.dll" "$(OutDir)\"
    

现在您应该已经准备就绪,不必再考虑了!

关于c++ - 当您的外部 SDK 只有.dll、.lib、.h 文件时如何链接和构建项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47403588/

相关文章:

c++ - 基类函数被调用两次

html - Sitefinity 5.3 : How do I order my CSS?

c++ - 如何更改解决方案文件中项目的输出目录

visual-studio - 如何将旧的 Visual Studio 项目迁移到 Visual Studio 2017?

c++ - 戈朗 : call Windows DLL functions

delphi - 如何将 C++ char** 翻译成 Delphi?

delphi - VC工程中调用Delphi函数

c++ - QPainting QPixmap使用裁剪来获得性能

c++ - Socket编程, "CLOSE_WAIT"、 "FIN_WAIT_2"和 "LISTENING"呢?

c++ - 调试和自由执行中的信号处理