DLL 文件的布局与 .exe 文件非常相似,但有一个重要的区别:DLL 文件包含导出表。 导出表包含 DLL 导出到其他可执行文件的每个函数的名称。 这些函数是进入 DLL 中的入口点;只有导出表中的函数才能被其他可执行文件访问。 DLL 中的任何其他函数都是 DLL 的私有函数。 可通过使用带有 /EXPORTS 选项的 DUMPBIN 工具来查看 DLL 导出表。
可使用两种方法从 DLL 导出函数:
创建模块定义 (.def) 文件,然后在生成 DLL 时使用 .def 文件。 如果希望按序号而不是按名称从 DLL 中导出函数,请使用此方法。
在函数定义中使用关键字 __declspec(dllexport)。
用任一方法导出函数时,请确保使用 __stdcall 调用约定。
你希望做什么?
使用 .def 文件从 DLL 导出
使用 __declspec(dllexport) 从 DLL 导出
使用 AFX_EXT_CLASS 导出和导入
导出 C++ 函数以用于 C 语言可执行文件
导出 C 函数以用于 C 或 C++ 语言可执行文件
按序号而不是按名称从 DLL 导出函数
确定要使用的导出方法
将可执行文件链接到 DLL
初始化 DLL
你想进一步了解什么?
导入到应用程序中
导入和导出内联函数
相互导入
另请参阅
导入和导出