Afxwin.h不能先于wxprec.h包含

在使用wxWidgets时发生一个奇怪的错误:使用new创建一个wxGrid,在释放时报告heap错误。

    m_pGrid = new wxGrid( this,

                       wxID_ANY,

                       wxPoint( 0, 0 ),

                       wxSize( 400, 300 ) );

     delete m_pGrid;

什么操作都没做。这个语句在wxWidgets示例中没有任何问题,所以估计问题应该出在mfcwxWidgets混用身上,去除对mfc的依赖后,果然一切正常。

难道它们不能混用吗?

调整一下afxwin.hwxprec.h的包含顺序:

#include <wx/wxprec.h>

#include <afxwin.h>

呵呵,搞定!估计是mfc重新定义了某些crt库的行为,或者是wxWidgets的某些行为。但是在wxWidgets编译时又是使用wxWidgets自己的函数,从而造成冲突。调整顺序后,自然的,wxWidgets还是使用自己内部的函数,也就没有错误了!

你可能感兴趣的:(Afxwin.h不能先于wxprec.h包含)