VS2008 f:/dd/vctools/vc7libs/ship/atlmfc/src/mfc/winctrl1.cpp 错误调试
在调试程序时,各个模块显示完成后,却出现这个报错:
在网上搜索发现有人出现相似的问题:
http://www.cnblogs.com/qwcbeyond/archive/2011/05/23/2054525.html
http://www.cnblogs.com/qwcbeyond/archive/2011/05/23/2054525.html
参考“30斤大番薯”的解决方法,在VS的安装磁盘搜索winctrl1.cpp这个文件。磁盘下一共有两个这个文件:
"C:\Program Files (x86)\Microsoft Visual Studio
9.0\VC\atlmfc\src\mfc\winctrl1.cpp"
"C:\Program Files (x86)\Microsoft Visual Studio
9.0\VC\ce\atlmfc\src\mfc\winctrl1.cpp"
在解决方案下用VS 2008打开"C:\Program
Files (x86)\Microsoft Visual Studio
9.0\VC\atlmfc\src\mfc\winctrl1.cpp",并设置断点,错误提示断点在第39行,同时,在OnChildNotify中也设置断点,系统通过调用 OnChildNotify
来调用 DrawItem:
在网上搜索CStatic::DrawItem发现,是“CStatic 控件有问题”。
在程序中查找CStatic,发现,有一个CStatic控件的 DrawItem
函数没有重写,系统自动调用自带的 DrawItem
导致报错。重写 DrawItem 后问题解决。