|
DLL
可以使用两种方法将公共符号导入到应用程序中或从 DLL 导出函数: 生成 DLL 时使用模块定义 (.DEF) 文件。 可以使用 .DEF 文件导入到应用程序中或从 DLL 导出。 使用 __declspec 不使用 __declspec(dllimport) 也能正确编译代码,但使用 __declspec(dllimport) 使编译器可以生成更好的代码。编译器之所以能够生成更好的代码,是因为它十分清楚函数是否在 DLL 中,因此可以生成跳过间接级别的代码,而在跨 DLL 边界的函数中通常存在这些间接代码。但是,必须使用 __declspec(dllimport) 才能导入 DLL 中使用的变量。 如果有正确的 .DEF 文件 EXPORTS 节,则不需要 __declspec(dllexport)。添加 __declspec(dllexport) 是为了提供不使用 .DEF 文件从 .EXE 或 .DLL 导出函数的简单方法。 Win32 可移植可执行文件格式旨在最小化为修改导入而必须访问的页数。为此,它将所有程序的所有导入地址都放在一个称为“导入地址表”的位置。这使得加载程序在访问这些导入时可以只修改一两页 |
DLL的导出方法(一)
最新推荐文章于 2025-03-05 17:59:44 发布
本文详细介绍了DLL如何通过两种方式实现符号导入和函数导出:一是使用.DEF文件;二是利用__declspec(dllimport)和__declspec(dllexport)关键字。此外还解释了这两种方法对于编译器生成更优代码的重要性。

5920

被折叠的 条评论
为什么被折叠?



