我正在创建一个使用DLL的项目.要构建我的项目,我需要包含一个头文件和一个lib文件.为什么我需要包含相应的lib文件?不应该头文件声明所有需要的信息,然后在运行时加载任何所需的库/ DLL?
谢谢
在许多其他语言中,您只需要相当于头文件的内容即可。但 Windows 上常见的 C 链接器始终使用导入库,C++ 链接器也效仿,现在更改可能为时已晚。
作为一项思想实验,人们可以想象这样的语法:
__declspec(dllimport, "kernel32") void __stdcall Sleep(DWORD dwMilliseconds);
Run Code Online (Sandbox Code Playgroud)
有了这些信息,编译器/链接器工具链就可以完成剩下的工作。
作为进一步的示例,在 Delphi 中,可以使用隐式链接导入此函数,如下所示:
procedure Sleep(dwMilliseconds: DWORD); stdcall; external 'kernel32';
Run Code Online (Sandbox Code Playgroud)
这只是表明导入库对于链接到 DLL 来说并不是必需的。
| 归档时间: |
|
| 查看次数: |
2797 次 |
| 最近记录: |