当你的外部SDK只有.dll、.lib、.h文件时,如何link并构建项目
How to link and built a project when your external SDK only has .dll, .lib, .h files
我有一个仅包含 .dll、.lib 和 .h 文件的外部 SDK。我正在尝试使用 SDK。 dll 中的任何内容都不可读,但 .h 文件对这些方法有一些注释。
我不是很懂 C++。我假设我需要加载库,然后使用 .h 文件中定义的方法从 dll 中读取。正确吗?
我需要知道如何编写一个 cpp 项目,我可以在其中 link 所有这些文件,读取 dll,并能够使用 sdk 中定义的方法。
是否有一个带有项目设置的测试项目,我可以在其中查看如何完成此操作?
任何帮助将不胜感激。
有多种方法可以实现此目的,包括使用 #pragma
的快捷方法,我 不 推荐这种方法,以防它导致您养成不良习惯。
同样,您可以使用 属性 Sheets,但开始时似乎有点不知所措。所以我要给你标准的中间方法...
在您的项目设置中(Alt-F7 或 项目 > 属性...),您需要设置这些选项:
C/C++ > 常规 > 附加包含目录
添加使用#include
指令时要搜索的文件夹。在不考虑个人喜好和风格的情况下,将其设置为 SDK 头文件所在的目录即可。
您可以使用绝对或相对路径、环境变量。任何。我建议你现在只使用绝对路径。
链接器 > 常规 > 附加库目录
与上面相同,但这是 .lib 文件所在的位置。
链接器 > 输入 > 附加依赖项
这是您的 lib 文件的名称。
现在,如果您 #include
项目源中的 SDK 头文件并进行编译,它应该可以正常工作。并且链接步骤也应该成功。
如果没有,您可能需要做一些额外的事情才能使 SDK 正常运行(例如预处理器定义、编译器设置或其他依赖项)。
您需要担心的最后一件事是 运行 您的程序可能会失败,因为无法找到 DLL,除非它位于 Windows 搜索的特定位置。您可以使用 Post-Build Event 将 DLL 复制到构建可执行文件的同一目录,而不是弄乱 DLL 搜索路径等。
仍然,在项目属性中:
构建事件 > Post-构建事件
添加如下命令行:
copy "\Path\To\MySDK\MySDK.dll" "$(OutDir)\"
现在您应该已经准备就绪,不必再考虑了!
我有一个仅包含 .dll、.lib 和 .h 文件的外部 SDK。我正在尝试使用 SDK。 dll 中的任何内容都不可读,但 .h 文件对这些方法有一些注释。 我不是很懂 C++。我假设我需要加载库,然后使用 .h 文件中定义的方法从 dll 中读取。正确吗?
我需要知道如何编写一个 cpp 项目,我可以在其中 link 所有这些文件,读取 dll,并能够使用 sdk 中定义的方法。 是否有一个带有项目设置的测试项目,我可以在其中查看如何完成此操作? 任何帮助将不胜感激。
有多种方法可以实现此目的,包括使用 #pragma
的快捷方法,我 不 推荐这种方法,以防它导致您养成不良习惯。
同样,您可以使用 属性 Sheets,但开始时似乎有点不知所措。所以我要给你标准的中间方法...
在您的项目设置中(Alt-F7 或 项目 > 属性...),您需要设置这些选项:
C/C++ > 常规 > 附加包含目录
添加使用
#include
指令时要搜索的文件夹。在不考虑个人喜好和风格的情况下,将其设置为 SDK 头文件所在的目录即可。您可以使用绝对或相对路径、环境变量。任何。我建议你现在只使用绝对路径。
链接器 > 常规 > 附加库目录
与上面相同,但这是 .lib 文件所在的位置。
链接器 > 输入 > 附加依赖项
这是您的 lib 文件的名称。
现在,如果您 #include
项目源中的 SDK 头文件并进行编译,它应该可以正常工作。并且链接步骤也应该成功。
如果没有,您可能需要做一些额外的事情才能使 SDK 正常运行(例如预处理器定义、编译器设置或其他依赖项)。
您需要担心的最后一件事是 运行 您的程序可能会失败,因为无法找到 DLL,除非它位于 Windows 搜索的特定位置。您可以使用 Post-Build Event 将 DLL 复制到构建可执行文件的同一目录,而不是弄乱 DLL 搜索路径等。
仍然,在项目属性中:
构建事件 > Post-构建事件
添加如下命令行:
copy "\Path\To\MySDK\MySDK.dll" "$(OutDir)\"
现在您应该已经准备就绪,不必再考虑了!