网上关于C1010的错误, 有很多.
今天,我遇到一种C1010的情况.
原始工程是vs2003, 我从svn checkout之后, 加入了一些功能.
可能中间用UE打开过, 或者用Beyond Compare 对比,并且在Beyond Compare进行了复制和粘贴.
这个工程几天之后, 合并进从svn上迁出的最新工程时, 我修改的文件正好只被我改过. 一个.h, 一个.cpp. 我当然直接换掉2个目标文件了。
这是编译后,出现了C1010错误.
捣腾了1个小时,还没搞定. 去网上查查. 人家的情况是: 如果在变量之后,include 头文件. 就会出现C1010. 但是我维护的工程,包含关系繁杂. 有很多全局变量. 我不可能去调整啊.
后来一个同事说,他遇到很多这样的情况. 原因是: 经过非vsIDE编辑拷贝过的文件, 有可能编码格式变了. 但是用文本比较工具看不出来. 他采用的方法是手工重新键入被修改过的代码, 问题就能解决.
但是我也不能手工键入代码,因为不光是麻烦,还容易出错. 万一以后,出现大量的代码格式被更改了,手工键入是不敢想象的。
懒人要想懒办法. 后来,想出了用vsIDE另存改变文件格式的方法. 好使.
在vs2003IDE中, 在文件管理器中双击那个引起问题的文件. 在编辑窗口打开后, 选择文件菜单中的另存选项. 另存条件为"中文936代码页"和"Windows回车", 另存.
从文件管理器和硬盘上删除编译不过的文件, 将另存的文件改成目标文件名, 加入文件管理器.
再次编译通过.
vs2005IDE中,未发生此类问题.