1.要用到的MFC相关的头文件,需要放在duilib的头文件#include"UIlib.h"之前;
2.工程的设置需要将 MFC的使用 这项 从使用标准window改为 在共享DLL中使用MFC;
3. 按照教程上的步骤,在 CControlUI* CreateControl(LPCTSTR pstrClass)这个函数实现中 创建CButton,在CButton::Create函数时会有断言错误:
_AFXWIN_INLINE HINSTANCE AFXAPI AfxGetInstanceHandle()
{ ASSERT(afxCurrentInstanceHandle != NULL);
return afxCurrentInstanceHandle; }
这里当前句柄为空,出现断言弹框后,点忽略,也可以继续正常运行;
对于教程上的demo,估计应该是创建的mfc项目,然后在上面实现duilib主界面, 然后再在duilib主界面上创建button;
跟踪调试发现, 在duilib主界面 创建时,即create时,这个过程就调用了CreateControl这个函数,在这里创建CButton,在Cbutton的create过程中,会调用CWnd::CreateEx,这里需要获取当前instance,这里就是 AfxGetInstanceHandle(), 然后在这时断言错误;