当外部SDK只有.dll,.lib,.h文件时,如何链接和构建项目

时间:2017-11-21 00:59:39

标签: c++ visual-studio dll sdk dllimport

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

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

1 个答案:

答案 0 :(得分:1)

有几种方法可以达到这个目的,包括使用#pragma的快捷方法,我会 不推荐

来引导你养成不良习惯。

同样,您可以使用 Property Sheets ,但这可能看起来有点压倒性。所以我打算给你标准的中途方法......

在项目设置(Alt-F7或项目>属性... )中,您需要设置以下选项:

  • C / C ++>一般>其他包含目录

    使用#include指令时添加要搜索的文件夹。如果不将其与个人偏好和样式注意事项相混淆,只需将其设置为SDK头文件所在的目录。

    您可以使用绝对或相对路径,环境变量。随你。我建议你现在只使用绝对路径。

  • 链接器>一般>其他图书馆目录

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

  • 链接器>输入>其他依赖性

    这是您的lib文件的名称。

现在,如果您在项目的源代码中#include SDK的头文件并进行编译,那么它应该可行。连接步骤也应该成功。

如果没有,可能需要额外的东西才能使SDK发挥出色(例如预处理器定义,编译器设置或其他依赖性)。

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

仍然在项目属性中:

  • 构建活动>建设后活动

    添加如下命令行:

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

现在你应该全力以赴,而不必再考虑它了!