繁体   English   中英

在Visual Studio 2005中创建DLL

[英]creating a DLL in Visual Studio 2005

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

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

这是我的问题-

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

  2. 我应该使用静态库而不是DLL,而不是DLL? 如果是这样,我该如何在Visual Studio 2005中进行操作,这是否会给我一个X.lib文件,该文件可以传递给我的团队?

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

非常感谢你。

生成DLL的最简单方法是New-> Project-> Win32 Console Application。 然后在对话框中选择DLL,然后选择“导出符号”。 这将使用.h和.cpp文件合成一个dll,以演示如何导出类。 您可以摆脱此.h / .cpp,但首先导入您的类,然后添加适当的#ifndef语句。 现在,就DLL与静态库而言,如果它只是一个小类,这种情况不会经常改变,那么使用静态库(简单,简洁)可能不会更好,它不会添加另一个需要交付的依赖项与您的产品一起使用。 如果.cpp文件中的代码经常更改(即函数实现),则DLL是很好的,因为您可以交换新的DLL。

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

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

如果选择“动态库”,并且从DLL中导出任何函数(例如,通过使用__declspec(dllexport)进行标记),则将自动生成导出.lib。

在不知道您正在执行的操作细节的情况下,很难说出哪个选项更可取。 通常,我建议默认为静态库,因为它通常足够好,并且在处理DLL(尤其是导出C ++符号的DLL)时会有更多陷阱。

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

有时我也为此感到挣扎..因为我找不到C ++ Project Properties中的难以捉摸的设置。.因此,我决定记下它,是出于我个人理智的博客文章

HTH

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM