以 CRuntimeClass 为键的 CMap

CMap with a CRuntimeClass as the key

我想通过它们的运行时间 classes...或一些将它们与其运行时间相关联的唯一 ID 来映射我的对象 class。我不会硬编码数据(EG: CObject = 2, CObjectEx = 3)

CRuntimeClass有m_lpszClassName和m_wSchema(m_wSchema只用于Implement_Dynamic classes,我有很多连载classes,其中架构为 0,因此不会起作用)。也许 GetRuntimeClass() returns 的 CRunTimeClass* 可能是唯一键?

是否所有 CMyInheritedObject 类型的 CObject return 都是指向 CRuntmeClass 对象的完全相同的指针?因此我可以使用 CRuntimeClass* 作为所有相同类型的 classes 的唯一键?

是的,CRuntimeClass 对于给定类型的所有对象始终是唯一的。否则 IsKindOf 和 MFC 宏 DYNAMIC_DOWNCAST 将无法工作。

如果 CMyInheritedObject 使用 IMPLEMENT_ 宏,则会创建适当的静态对象。