MFC 定时 non-unique name specified

使用单文档MFC,设置一个定时器SetTimer(1, 1000, NULL),使用它每隔一秒更新一次
地图。ontimer写入如下代码后:
{
CMapXLayers lays;//图层集合
CMapXLayer lay;
lays = m_ctrlMapX.GetLayers();
lay = lays.CreateLayer("temp1",NULL,1);
CMapXStyle style;
CMapXFeature ftr;
extern CString m_Longtd, m_Lattd;
double a,b;

if(ftr.CreateDispatch(ftr.GetClsid()))
{
    ...
}
else
{
    AfxThrowOleException(CO_E_CLASS_CREATE_FAILED);
}
}
执行后出现如下问题:
non-unique name specified.(name already in use by another object)

该怎么解决呢?

名字重复了,看看是不是代码执行了2次。

CreateLayer后,是否需要对应的 DeleteLayer 呢?

是不是重复创建了?lays.CreateLayer("temp1",NULL,1);