Я хочу сопоставить свои объекты по классам выполнения ... или уникальный идентификатор, который связывает их с их классом среды выполнения. Я не буду жёстко данные (например: CObject = 2, CObjectEx = 3)CMap с CRuntimeClass как ключ
CRuntimeClass имеет m_lpszClassName и m_wSchema (m_wSchema используется только для Implement_Dynamic классов, и у меня есть много последовательных классов, где схема 0, так это не сработает). возможно, CRunTimeClass *, который возвращает GetRuntimeClass(), может быть уникальным ключом?
Все ли объекты CObject типа CMyInheritedObject возвращают тот же самый указатель на объект CRuntmeClass? поэтому я мог бы использовать CRuntimeClass * как уникальный ключ для всех классов одного типа?
Я могу использовать CRuntimeClass *, который возвращается CObject :: GetRuntimeClass() в качестве ключа для сопоставления объектов по их классу. – diox8tony
Фактически, [CRuntimeClass :: m_wSchema] (https://msdn.microsoft.com/en-us/library/f9h5x2k4.aspx) используется только для классов, реализованных с использованием [IMPLEMENT_SERIAL] (https://msdn.microsoft.com). /en-us/library/a94da1y0.aspx). Он обозначает версию сериализованного формата при потоковой передаче в «CArchive» или для чтения. IMPLEMENT_SERIAL требует [IMPLEMENT_DYNCREATE] (https://msdn.microsoft.com/en-us/library/5fsfk9dy.aspx), чтобы потоковые объекты выходили из 'CArchive'. – IInspectable