在Visual Studio 2005中创建DLL

时间:2009-07-10 04:58:44

标签: c++ visual-studio dll visual-c++-2005

我正在开发一个我希望传递给我的团队的C ++库。该库只有一个类,有一堆方法。

因此,我开发了类定义文件(X.cpp)和相应的类声明文件(X.h)。

以下是我的问题 -

  1. 在Visual Studio 2005中,最简单的方法是将此库构建为DLL,这样我就可以获得以下文件: X.lib:我可以传递给我的团队,以便他们可以链接到我的库 X.dll:我可以将其传递给我的团队以获取运行时间

  2. 而不是DLL,我宁愿去静态库的方式?如果是这样,我如何在Visual Studio 2005&这会给我一个X.lib文件,我可以传递给我的团队吗?

  3. 非常欢迎任何解释或参考。

    非常感谢。

4 个答案:

答案 0 :(得分:2)

构建DLL的最简单方法是New-> Project-> Win32控制台应用程序。然后在对话框中选择DLL并选择“Exports Symbols”。这将使用.h和.cpp文件合成一个dll,该文件演示了如何导出类。你可以摆脱这个.h / .cpp,但首先导入你的类添加适当的#ifndef语句。现在,就DLL而非静态库而言,如果它只是一个小类,它不会经常变化,你可能会更好地使用静态库,它简单,简洁,它不会添加另一个需要发送的依赖项与您的产品。如果.cpp文件中的代码经常更改(即函数实现),则DLL很好,因为您可以只交换新的DLL。

答案 1 :(得分:1)

根据您的描述,您似乎已经拥有了一个Visual C ++项目(如果我错了,请纠正我)。如果是这样,当您进入项目属性时,在“常规”下,您可以找到“配置类型” - 根据需要将其切换为“静态库”或“动态库”。

如果您选择“静态库”,那么您将获得一个可以立即使用的.lib文件。

如果选择“动态库”,并从DLL导出任何函数(例如,使用__declspec(dllexport)标记它们),将自动生成导出.lib。

如果不知道你正在做什么的具体细节,很难说哪个选项更合适。一般来说,我建议默认为静态库,因为它通常足够好,并且在处理DLL时会有更多的陷阱(尤其是导出C ++符号的陷阱)。

答案 2 :(得分:1)

我认为,在大多数情况下,dll是比静态lib更好的选择,因为在分发新版本的库时,您的团队不必重新编译代码。

答案 3 :(得分:0)

我有时候也很挣扎......因为我找不到C ++项目属性中难以捉摸的设置。所以我决定把它记录下来,因为我自己的理智为a blog post

HTH