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

Static library vs Dynamic library for storing classes

本文关键字:动态 静态 存储 用于      更新时间:2023-10-16

我将类存储在静态库中。例如,修改原始头文件,如添加行pragma注释(lib,"MyClass"),然后将文件复制到visualstudio的include和lib文件夹中。不管怎样,一切都很好,直到我想把Menu添加到我的课堂上。Lib文件没有资源,所以我将为这个类使用动态链接库。将类存储在dll中是否合乎逻辑?我也不知道如何使用这样的dll。。。有这样的例子吗?还有像CFileDialog这样的类具有资源(对话框)。这类类类使用静态库还是动态库?

对我来说,这听起来像是"错误的拆分位置"。换句话说,如果你的库需要一个属于应用程序的资源,那么它可能一开始就不是一个库——它要么是一个包含自己资源的适当的独立DLL,因为它具有完整的独立功能,要么它实际上是主可执行文件的一部分,并使用主可执行程序的资源。

将某些内容制作成库的关键在于,它允许将库内容与主应用程序分离。

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

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

我知道这并不能直接回答你的问题。。。