【发布时间】:2013-11-19 16:17:41
【问题描述】:
我很难理解为什么 C++ 中同时需要 #include 和 LoadLibrary()。在 C++ 中,“#include”强制预处理器将 #include 行替换为您所包含的文件的内容(通常是包含声明的头文件)。据我了解,这使我能够在标头所属的外部库中使用我可能想要的例程。
为什么我需要 LoadLibrary()?我不能只#include 库本身吗?
顺便说一句:在我更熟悉的 C# 中,如果我想在我的程序中使用该 DLL 中的类型或例程,我只需添加对 DLL 的引用。我不需要 #include 任何东西,因为 .NET 框架显然会自动搜索所有引用的程序集以查找我想要使用的例程(由命名空间指定)
非常感谢您。
编辑:使用了“定义”一词,但意思是“声明”。现已修复。
编辑 2:很难选择一个答案,很多好的答案。感谢所有贡献。
【问题讨论】:
-
在 Windows 平台上的 C/C++ 中一个更常见的模式是,您包含 header/s 以导入声明(函数、类等)。您链接到静态库或导入库 (.lib)。如果是导入库,您的应用程序将在启动后尝试动态链接 DLL。使用 LoadLibrary 肯定是一种有效的模式,但不如简单地使用将您的应用与动态库联系起来的导入库那么普遍。
标签: c++ include loadlibrary