在Visual Studio中的VC ++项目中,如何指定/ EXPORT符号?

时间:2009-08-23 22:48:03

标签: visual-studio build visual-c++ linker

我有一个makefile项目,它使用命令行cl.exe编译器构建和链接DLL,该编译器包含在VC ++ Express(免费)工具中。我现在想将该makefile项目转换为Visual Studio项目。

DLL实际上不是C ++;它都是用C语言写的。

DLL导出少量符号,这些符号由链接到DLL的其他程序调用。我相信为了生成这个DLL,我需要在链接命令行上为每个导出的符号包含一个/EXPORT:Foo语句。

如何在Visual Studio 2008中执行相同的操作?如何指定链接器选项以从DLL导出特定的一小组函数?

4 个答案:

答案 0 :(得分:4)

请参阅Exporting from a DLL的前几个小节,其中说明了

  

您可以从DLL导出函数   使用两种方法:

     

创建模块定义(.def)文件   并在构建时使用.def文件   DLL。如果需要,请使用此方法   从您的DLL导出函数   有序而不是名字。

     

使用关键字__declspec(dllexport)   在函数的定义中。

答案 1 :(得分:3)

您必须使用链接器“命令行”属性中的“其他选项”并明确添加选项。

我认为大多数人使用__declspec(dllexport)属性和宏来使其更有用,并使declspec成为库中客户端头文件中的dllimport版本。

答案 2 :(得分:2)

或者您可以尝试:

cl /LD hellodll.cpp /link /EXPORT:func01 /EXPORT:func01

表示未由"_declspec(dllexport)"

指定的函数

答案 3 :(得分:1)

我没有看到它的GUI选项,因此您可以在项目属性中的Linker下的Command Line下手动添加它。我认为大多数人都会使用DEF文件。