0

我的老板有一个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);

第 21 行 afxwin1.inl 中的断言在调用 Create(...) 期间被抛出;文件 afxwin1.inl 中的断言是ASSERT(afxCurrentInstanceHandle != NULL). 有没有办法让我的单元测试通过这个?

4

1 回答 1

-1

字符集不匹配是导致此问题的一种可能性。

mfc dll正在使用 UNICODE。

确保"IDD_EDIT_STRING"使用的是 unicode 但不是ANSI.

也许尝试No Set在字符集中使用

(配置属性 -> 常规 -> 字符集)

于 2019-05-02T03:38:48.257 回答