前几天,打算给项目里加一个特殊处理的类,使用了快捷键Ctrl+Shift+x,想要打开MFC Class Wizard,可是却得到一个报错,缺少资源,文件被污染等等。
后来,我又多次打开,都是这样,同时在调试过程中会提示一个中断,Output窗口中显示can't load image 138:GetLastErrot() = 716;,好在通过MSDN论坛中有人找到了问题的症结,提出了解决方案,我按照他所提供的方法,万事OK。其实产生这个错误的原因是资源在Resource.h 的编号和Ribbon的XML文件中加载的号码不一致,导致系统无法找到这个资源在资源文件.rc中对应的信息也必须对应。
如图1所示,
在资源文件的头文件定义了IDB_MAIN的代号是312,如果你在ribbon.mfcribbon-ms中的对应的value属性值不是312,那就会报错,以16进制数,表明无法加载的image的对应值,如果这个值是16那就会是can't load bitmap 10:GetLastErrot() = 716; 在加载ribbon的时候,系统会对ribbon进行布局,并给每一个资源赋值。如图2所示,
这是ribbon给main按钮赋值的XML标签。