您的位置:首页 > 编程语言 > C语言/C++

关于vs2010(C++ 工程)的异常问题(this is not a valid c/c++ file .CPP)的解决(C++ 初学者)

2013-03-25 11:32 501 查看
问题点的描述:

前天在复习上次学过的“创建Windows应用程序项目(在一个窗口中显示一幅图片)”时,我重新建立了一个工程A,以前学习时建的那个工程B已完成编译通过了。在新建的这个工程中我可能在VS2010的设置(Tool->Options)中不知道可能是误操作了,反正就是鬼使神差的或者说是一知半解设置了某一项。就是我这一个误操作,导致我接下来的一系类的未知异常。最明显的就是使用VS2010
Class Wizard(类向导) 添加消息处理函数时出现如下的错误:

异常(1)

使用VS2010MFC Class Wizard(类向导) 添加消息处理函数时出现如下的错误:

①点击选中左边的Message后 点击右上角Add
Handler...,如图





MFC Class Wizard自动的消失,不能添加Message 响应处理函数

②点击左小角的Add
Custom Message... 时添加自定义Message时,弹出出错对话框:There
is no Message Map in Class.如下图:





异常(2)

①当我在网上搜索时,得知还可以在Class
View 中右键类的属性(Properties)时,在出现的属性对话中,点击一个闪电图面右边的一个Message图标,在下面列出的消息响应函数中选择我所需要的函数OnPaint(),点击<Add
OnPaint>时,如下图:





弹出了出错对话框:Property value is not vaild,详细信息是:Operation
SetValue on the component did not succeed, generating the error code 0x80004005.

异常(3)

当我在网络上找寻很久后,我开始怀疑是不是代码的问题,于是就把上次建的工程B的代码拷贝过来,去掉已经添加的消息响应函数OnPaint(),还是不能使用类向导来添加,试了手动添加(刚开始学,还不会,就拷贝上次使用向导自动添加成功的代码到工程A中)可以通过编译没问题。运行也正常。

至此我只知道我的编译器不能使用Class Wizard来自动添加消息处理函数了,感觉这个Class
Wizard坏了;我开始怀疑是不是VS2010的软件的出问题了。(后来还真的出问题,不过我确定是由于我之前下了一个什么T4
Edit的插件什么,安装到VS2010后,我本以为是可以更改代码的显示风格的,比如背景,字体颜色,关键字颜色什么的,(我感觉就像一个NotePad++类似的代码编辑器什么的)结果好像对我的C++语言没用,加上之后出现的异常,就在我苦苦找寻上面出现的的异常之后就开始怀疑是不是这个插件的不兼容问题了),加上之前我倒入过别人的VS2010的配置文件,我不确定是不是配置的问题,就想卸了重装。于是我就把这个插件给卸载了,这一卸载,我的VS2010的Editor就打不开了,一打开一个工程就自动退出,这样我就只能卸载了,正准备重装时,可我还是感觉重装要花很长的时间,突然想到某些软件还可以修复,于是我就点击卸载,在卸载的对话中选择了修复,结果他妈的和重装没什么区别,花的时间就是他妈的的重装的时间。问题还是没有解决。这时天都已经亮了,为了这个问题我又熬了通宵。百度,谷歌,MSDN,必应都搜了,发现基本没有出现这方面的问题,于是就在百度知道提问,在MSDN论坛提问,上传问题图片。

过了一天后,我把VS2010彻底的卸载了,然后重装,并且还升级了SP1补丁包,问题照样出现,而且还出现了新的异常,就是我建了一个新的工程,在添加类时,即右键工程名->Add
Class。弹出了出左对话框:this is not
a valid c/c++ file .CPP这不是一个有效的c++文件,如图:





这我就奇怪了,以前一直都是使用.Cpp后缀的,现在怎么就没用了呢?这里要非常感谢百度的网友,在知道上面,有位网友建议我把.cpp后缀换成.CC后缀是一下,结果还真的就可以了,添加Class出现的问题解决了,可是Class
Wizard 还是不能添加消息函数,不过至此我终于开始有了一点方向了,我就在Options里查看有关文件后缀的相关设置,突然感觉有那么点记忆,就是我好像设置过Cpp后缀的相关设置,最终在Options->Text
Editor->File Extension 如下图:





中有一个cpp文件手机是对应Resource
Editor 的,当我试着Remove 时,然后上面所有的问题都在瞬间解决了,至此我终于恍然大悟,原来上面的错误都是由于我把扩展名为CPP文件的都作为Resource 文件来编辑了。

这个问题终于解决了,困扰了我两天的问题,最终却是因为我的胡乱的设置问题。

不过在找寻这个问题的过程中,又学到了很多不同的知识。如果没有自己的不懈坚持与执着的热情,这个问题可能对我来说永远都会是一个迷了。那么在我今后的学习中我就将带着这个问题的谜团越走越远了。最终我可能会发现,哦,原来我什么问题都没解决。

此文章来自于【http://blog.sina.com.cn/s/blog_9ffcd5dc01014s77.html】
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐