触发代码为
HWND CDataExchange::PrepareCtrl(int nIDC)
{
ASSERT(nIDC != 0);
ASSERT(nIDC != -1); // not allowed
HWND hWndCtrl;
COleControlSite* pSite = NULL;
m_pDlgWnd->GetDlgItem(nIDC, &hWndCtrl);
if (hWndCtrl == NULL)
{
// Could be a windowless OCX
pSite = m_pDlgWnd->GetOleControlSite(nIDC);
if (pSite == NULL)
{
TRACE(traceAppMsg, 0, "Error: no data exchange control with ID 0x%04X.\n", nIDC);
ASSERT(FALSE);
AfxThrowNotSupportedException();
}
}
m_idLastControl = nIDC;
m_bEditLastControl = FALSE; // not an edit item by default
return hWndCtrl;
}
提示资源ID找不到
检查resource.h 和 .rc文件,均发现资源ID存在,且资源ID唯一
为什么VS就是说找不到呢?
仔细检查发现,拥有该控件的 对话框的资源ID 与同项目的另一个工程的另一个对话框的资源ID 重复了。
重新修改本对话框的资源ID至项目内唯一,清理解决方案,关闭VS,重启VS,打开项目,生成项目解决方案,debug运行,错误消失。