用于存储类的静态库与动态库
Static library vs Dynamic library for storing classes
我将类存储在静态库中。例如,修改原始头文件,如添加行pragma注释(lib,"MyClass"),然后将文件复制到visualstudio的include和lib文件夹中。不管怎样,一切都很好,直到我想把Menu添加到我的课堂上。Lib文件没有资源,所以我将为这个类使用动态链接库。将类存储在dll中是否合乎逻辑?我也不知道如何使用这样的dll。。。有这样的例子吗?还有像CFileDialog这样的类具有资源(对话框)。这类类类使用静态库还是动态库?
对我来说,这听起来像是"错误的拆分位置"。换句话说,如果你的库需要一个属于应用程序的资源,那么它可能一开始就不是一个库——它要么是一个包含自己资源的适当的独立DLL,因为它具有完整的独立功能,要么它实际上是主可执行文件的一部分,并使用主可执行程序的资源。
将某些内容制作成库的关键在于,它允许将库内容与主应用程序分离。
当然,另一种选择是将相关资源信息从主应用程序传递到库中的类[当然,这也适用于DLL]。
我的观点是,菜单是属于主应用程序的东西——它知道File
、Edit
、View
等下有什么。如果你在写文字处理器,你可能会在里面有"拼写检查"之类的东西,但你不希望照片编辑器软件中有"拼写检查",但你可能想要一些方法来获取颜色配置文件信息,以使显示器的颜色平衡与官方颜色相匹配。因此,你处理菜单的"类"可能不应该"知道"菜单是什么,而应该知道如何处理菜单——你拥有的菜单来自实际的主应用程序。
我知道这并不能直接回答你的问题。。。
相关文章:
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 视觉studo 2019中的漫画和静态/动态绑定
- 静态数组的自由动态数组
- 动态初始化 C 与 C++ 中的静态值
- 以下代码执行哪种内存分配(动态或静态)?
- 将静态内存更改为动态C++
- 如何静态识别动态堆分配?
- 如果包含映射的静态库与可执行文件和动态库链接,静态映射(变量)是否会被多次释放?
- 非类类型表达式的静态类型与动态类型之间的差异
- 如何使用类型级函数动态创建静态类型?
- 静态和动态模板初始化可以交错吗?
- 将基类分配给派生对象,反之亦然,以C++以及静态和动态对象之间的差异
- 虚拟成员函数的定义是否强制在同一转换单元中动态初始化静态数据成员?
- 将静态字符数组中的字符分配给动态分配的字符数组 - 访问冲突
- 动态分配的数组和静态数组之间的区别
- 动态分配对象中的字段-动态分配更好还是静态分配更好?C++
- 如何对以下程序使用静态或动态转换
- 如何使用cmake设置OpenCV以启用动态和静态构建
- 静态分配和动态分配返回不同的答案
- 我应该在这个程序中使用静态内存分配还是动态内存分配