首页 > 代码库 > 关于Cwnd::Create()函数出现afxwin1.inl line:21错误的解决方法

关于Cwnd::Create()函数出现afxwin1.inl line:21错误的解决方法

我最近在调试一个dll时,出现了一个莫名的断言错误,就是在主程序中创建由MFC 扩展DLL导出的一个控件(该控件继承自CWnd类)时,一调用Create()函数就出现下面的的断言错误:



调试跟进去:

file:afxwin1.inl 

line:21 

发现是下面的断言语句报错:

_AFXWIN_INLINE HINSTANCE AFXAPI AfxGetResourceHandle()
{

ASSERT(afxCurrentResourceHandle != NULL);//这里出错!
return afxCurrentResourceHandle; 

}

费了很大的周折才解决,其实就是犯了一个很低级的错误,dll的字符集不匹配,mfc dll的字符集为UNICODE,但 我调用Create()函数时传进去的窗口名为ansi字符集,所以不匹配!


关于Cwnd::Create()函数出现afxwin1.inl line:21错误的解决方法