我有一个makefile项目,它使用命令行cl.exe编译器构建和链接DLL,该编译器包含在VC ++ Express(免费)工具中。我现在想将该makefile项目转换为Visual Studio项目。
DLL实际上不是C ++;它都是用C语言写的。
DLL导出少量符号,这些符号由链接到DLL的其他程序调用。我相信为了生成这个DLL,我需要在链接命令行上为每个导出的符号包含一个/EXPORT:Foo
语句。
如何在Visual Studio 2008中执行相同的操作?如何指定链接器选项以从DLL导出特定的一小组函数?
答案 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文件。