问题

打开VC2010创建一个极简单的Win32Console程序,然后按F5运行程序时出现如下错误提示:

error LNK1123: failure during conversion to COFF: file invalid or corrupt

错因分析

提示说明在转换到COFF文件因为错误失败了(VS2010装好了,一般是不会有[file invalid] 错的)。
而完成转换工作的是cvtres.exe这个程序。出现上面错误的根本原因是系统中存在有多个版本的 cvtres.exe。
系统目录下版本:C:\Windows\Microsoft.NET\Framework\v4.0.30319\cvtres.exe
VS目录下版本: C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\cvtres.exe
如果是64位系统,那么还会有一个同名文件位于:C:\Windows\Microsoft.NET\Framework64\v4.0.30319\cvtres.exe
不过Framework 和Framework64下俩个版本是一致的,而且由于系统更新,一般比VS目录下的版本新。
到此解决方法也就明显简单了,只需要将旧版的重命名或者删除。
至于观察文件的版本,请参考下图:
VC错误——error LNK1123: failure during conversion_第1张图片