class CModelManager : public CObject
{
public:
static CModelManager& GetInstance();
void AddModelInfo(CString,CModelInfo&);
CModelInfo* GetModelInfo(CString mInfoID);
protected:
virtual ~CModelManager();
/// <summary> 静态变量,唯一地持有模型管理器对象</summary>
static CModelManager m_instance;
private:
CModelManager();
/// <summary> 保存所有的模型 </summary>
CArray<CModelItem,CModelItem&> m_modelItems;
/// <summary> 保存所有的模型信息. </summary>
CMap<CString ,CString ,CModelInfo ,CModelInfo& > m_modelInfosMap;
};
如果像这里写的话,就会出错提示错误如前一篇文章所示。在给CModelInfo重载了public的operator=函数后,系统提示如下错误
无法从“ATL::CStringT<BaseType,StringTraits>”转换为“long”
在参考其他示例代码后,将CMap第二个参数改成LPCTSTR,终于解决问题。