c++ - 为什么我需要将 lib 文件链接到我的项目?

标签 c++ c dll

我正在创建一个使用 DLL 的项目。要构建我的项目,我需要包含一个头文件和一个 lib 文件。为什么我需要包含相应的 lib 文件?头文件不应该声明所有需要的信息,然后在运行时加载任何需要的库/dll 吗?

谢谢

最佳答案

在许多其他语言中,头文件的等价物就是您所需要的。但是 Windows 上常见的 C 链接器一直使用导入库,C++ 链接器也紧随其后,现在可能已经来不及改变了。

作为一个思想实验,可以想象这样的语法:

__declspec(dllimport, "kernel32") void __stdcall  Sleep(DWORD dwMilliseconds);

有了这些信息,编译器/链接器工具链就可以完成剩下的工作。

再举一个例子,在 Delphi 中,可以使用隐式链接导入此函数,如下所示:

procedure Sleep(dwMilliseconds: DWORD); stdcall; external 'kernel32';

这只是表明导入库在先验上并不是链接到 DLL 所必需的。

关于c++ - 为什么我需要将 lib 文件链接到我的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6957061/

相关文章:

c - libmodbus : Unable to Poll modbus energy meter having stop bit as 2

c# - 如何解决 C# 应用程序中的 vb6 dll 800a01ad 错误

c++ - 你将如何重写这个结构体指针?

c++ - 在一组 shared_ptr 中找到一个值

c - 输出中的额外整数

python - 使用 Python 调用 DLL 函数时出现 ctypes.ArgumentError

c# - 将值分配给 C++ 中的结构到从 C# 传递的结构时出现问题

java - 是否可以在 android studio 中编写纯 java/c++ 程序

c++ - 在目标函数中使用迭代器的 STL 算法

c - C 中是否存在依赖于两个不同分配的整数表示的用例?