使用VS将C ++库编译为静态库和动态DLL

时间:2011-09-07 12:19:40

标签: visual-studio dll linker export

我需要将现有的C ++库编译为lib和dll,然后在不同的应用程序中使用静态和动态库。我使用VS2010。

我不能做的是编辑所有头文件以便添加__declspec(dllexport)指令以导出,因为库必须保持原样。

在Mac下,我能够毫无问题地编译和使用dylib,但我知道VS在这方面缺乏。

在VS中,首先编译静态lib然后编译dll以使函数“导出”(即在编译时从应用程序链接)是可行的吗?换句话说,我可以使用静态库,就像使用__declspec(dllexport)生成的导出库一样吗? 有更好的解决方法吗?

1 个答案:

答案 0 :(得分:2)

  

我需要将现有的C ++库编译为lib和dll,以及   然后在不同的应用程序中使用静态和动态库。一世   使用VS2010。

为此创建配置。例如Release LIB,Release DLL等

  

我不能做的是编辑所有头文件以便添加   __declspec(dllexport)指令要导出,因为库必须是   保持原样。

只需添加模块定义文件(* .def)和导出函数列表。

  

换句话说,我可以像使用导出库一样使用静态库   用__declspec(dllexport)生成?

不,这些库是不同的。构建DLL时,您将获得二进制文件和lib文件。