2009-08-23 33 views
3

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

该DLL实际上并不是C++;它全部用C语言编写。

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

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

回答

3

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

我认为大多数人使用__declspec(dllexport)属性以及宏来使其更加可用,并为库的客户端在头文件中创建一个dllimport版本。

1

我没有看到它的GUI选项,因此您可以在项目属性中的链接器下的命令行下手动添加它。不过,我认为大多数人使用DEF文件。

4

见第一对夫妇的Exporting from a DLL,它说小节的,

您可以从一个DLL 使用两种方法导出功能:

创建一个模块定义(.def)文件 和使用在构建 DLL时.def文件。如果您希望 从您的DLL导出函数 序号而不是名称,请使用此方法。

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

2

,或者你可以尝试:不是由"_declspec(dllexport)"

+0

右指定,但问题是如何在Visual Studio中做

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

的功能,而不是如何做它的命令行。事实上,在我的问题中,我甚至说我可以通过'/ EXPORT'选项在命令行上执行。 – Cheeso 2010-08-25 22:55:25

相关问题