今天遇到CXX0033:Error:error in OMF type information这个问题,看到网上说的方法都是:
“转载至:http://blog.csdn.net/ruifangcui7758/article/details/6789561
今天调试程序,想查看全局变量的值,大家知道成员变量及局部变量,可以在watch窗口查看,也可以将鼠标停留在变量上,即可显示变量的值,但是程序的全局变量值在watch窗口Value值栏,则显示如下内容“CXX0033:Error:error in OMF type information”,经过上网查找和自己实践可以通过以下方法实现:鼠标选中该全局变量,右键:“QuickWatch”——>“Add Watch”,需要注意的是,如果在多文档应用程序中在XXAPP里定义的全局变量需通过如下方式添加到watch“((CXshowApp*)AfxGetApp())->变量”
就可以在watch 窗口看到全局变量的值了!^_^。”
但试验了不成功。
通过请教高手后发现是如下原因:(转载至http://msdn.microsoft.com/zh-cn/library/d7wkwszz.aspx)
表达式计算器错误 CXX0033
可执行文件没有用于调试的有效对象模块格式 (OMF)。
该错误与 CAN0033 相同。
通过检查以下可能的原因进行修复
-
该可执行文件不是用和此版 Visual C++ 一同发行的链接器创建的。使用 LINK.exe 的当前版本重新链接对象代码。
-
.exe 文件可能已损坏。重新编译并重新链接程序。
最后我点击build->rebuild all后,再进行调试。所有的变量皆可显示其值。
PS:若想通过watch窗口查看变量的值(包括全局变量等),既可以通过“鼠标选中该全局变量,右键:“QuickWatch”——>“Add Watch””;也可选中该变量,将其拖放到watch窗口中进行查看。