首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我需要将lib文件链接到我的项目?

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

Stack Overflow用户
提问于 2011-08-05 21:27:57
回答 7查看 3.5K关注 0票数 12

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

谢谢

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-08-05 21:30:33

在许多其他语言中,您所需要的就是头文件的等价物。但是Windows上常见的C链接器总是使用导入库,C++链接器也是如此,现在改变可能已经太晚了。

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

代码语言:javascript
复制
__declspec(dllimport, "kernel32") void __stdcall  Sleep(DWORD dwMilliseconds);

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

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

代码语言:javascript
复制
procedure Sleep(dwMilliseconds: DWORD); stdcall; external 'kernel32';

这表明导入库对于链接到DLL来说并不是必须的。

票数 3
EN

Stack Overflow用户

发布于 2011-08-05 21:30:26

这是一个所谓的“导入库”,它包含稍后(在加载时)要求操作系统加载DLL的最小连接。

票数 3
EN

Stack Overflow用户

发布于 2011-08-05 21:31:33

DLL是Windows (MS/Intel)的东西。(生成的) lib包含调用DLL所需的代码,它向应用程序的其余部分公开“普通”函数。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6957061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档