静态库与用于存储类的动态库

时间:2013-07-02 13:44:58

标签: c++ dll mfc

我将我的类存储在静态库中。例如,修改原始头文件,如添加行编译指示注释(lib,“MyClass”),然后将文件复制到visual studio的include和lib文件夹。无论一切都很好,直到我想要将Menu添加到我的class.Lib文件没有资源所以我将为这个类使用动态链接库。这是逻辑的,在dll中存储类?我也不知道如何使用这样的dll ...... 这有一些例子吗?还有像CFileDialog这样的类有资源(对话框)这种类使用静态库还是动态?

1 个答案:

答案 0 :(得分:0)

对我而言,这听起来像是“分开事物的错误地方”。换句话说,如果你的库需要一个属于应用程序的资源,那么它可能并不首先是一个库 - 它是一个适当的独立DLL,它包含自己的资源,因为它有一个完整的独立功能,或者它实际上是主可执行文件的一部分,并使用主可执行文件的资源。

将某些东西放入库中是因为它允许将库内容与主应用程序分离。

另一个选择当然是您将相关的资源信息从主应用程序传递到库中的类[当然也适用于DLL]。

我的观点是,菜单属于主应用程序 - 它知道它在FileEditView等下的含义。如果您正在编写文字处理器,你可能会有“拼写检查”之类的东西,但你不想在照片编辑器软件中进行“拼写检查”,但你可能想要一些方法来获取颜色配置文件信息以匹配显示器的色彩平衡。官方颜色。因此,处理菜单的“类”可能不应该“知道”菜单是什么,而是一般如何处理菜单 - 您的菜单来自实际的主应用程序。

我知道这不是你问题的直接答案......