我的老板有一个名为CEdit
的自定义CInPlaceEdit
类,我们目前正在使用单元测试项目在Visual Studio 2012中测试此类。基本上我们在单元测试中创建CEdit
类,如下所示:
CDialog *dlg = new CDialog();
dlg->Create(IDD_EDIT_STRING);
CWnd *pListCtrl = dlg;
auto pParent = pListCtrl->GetParent();
auto editSpLat = new CInPlaceEdit(-1, i, pszBlank, GetEditTemplates()->m_pEdtSpLat, (void*)&m_pSP, pListCtrl, IPE_CTRL | IPE_PTRTOPTR_VAR | IPE_RIGHT_JUSTIFY, ids);
editSpLat->Create(dwStyle, CRect(0, 0, 1, 1), pListCtrl, IDC_INPLACEEDIT + i);
在调用Create(...)期间抛出第21行afxwin1.inl中的断言;文件afxwin1.inl中的断言是ASSERT(afxCurrentInstanceHandle != NULL)
。有没有办法让我的单元测试能够超越这个?
答案 0 :(得分:-1)
字符集不匹配是导致此问题的一种可能性。
mfc dll
正在使用UNICODE。
确保"IDD_EDIT_STRING"
使用的是unicode,而不使用ANSI
。
也许尝试在字符集中使用No Set
(配置属性->常规->字符集)