/EXPORT(导出函数)
/EXPORT:entryname[,@ordinal[,NONAME]][,DATA]
备注
使用该选项,可以从程序导出函数,以便其他程序可以调用该函数。也可以导出数据。通常在 DLL 中定义导出。
entryname 是将由调用程序使用的函数名或数据项名。ordinal 在 1 到 65,535 的范围内指定导出表中的索引;如果没有指定 ordinal,LINK 将分配一个。NONAME 关键字只将函数导出为序号,没有 entryname。
DATA 关键字指定导出项为数据项。客户程序中的数据项必须用 extern __declspec(dllimport) 来声明。
有三种导出定义的方法,按照建议的使用顺序依次为:
源代码中的 __declspec(dllexport)
.def 文件中的 EXPORTS 语句
LINK 命令中的 /EXPORT 规范
所有这三种方法可以用在同一个程序中。LINK 在生成包含导出的程序时还创建导入库,除非生成中使用了 .exp 文件。
LINK 使用标识符的修饰形式。编译器在创建 .obj 文件时修饰标识符。如果 entryname 以其未修饰的形式指定给链接器(与其在源代码中一样),则 LINK 将尝试匹配该名称。如果无法找到唯一的匹配名称,则 LINK 发出错误信息。当需要将标识符指定给链接器时,请使用 Dumpbin 工具获取该标识符的修饰名形式。
说明 |
---|
不要指定声明为 __cdecl 或 __stdcall 的 C 标识符的修饰形式。 |
在 Visual Studio 开发环境中设置此链接器选项
打开项目的**“属性页”**对话框。有关详细信息,请参见设置 Visual C++ 项目属性。
单击“链接器”文件夹。
单击**“命令行”**属性页。
将该选项键入**“附加选项”**框中。
以编程方式设置此链接器选项
- 请参见 AdditionalOptions。