1.问题:error C4335: Mac file format detected: please convert the source file to either DOS or UNIX format
解决方法:用UltraEdit查看发现好到不必要的字符。例如“?”等,去掉即可。可以在另存为成DOS格式
2.问题:error C2447: '{' : missing function header (old-style formal list?)
解决方法:原来是函数声明和函数体之间多了一个“;”
3.LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
解决方法:该错误发生在VS2010中右键->工程属性->配置属性-> 清单工具->输入和输出->嵌入清单,选择[否]。如果程序中用到了资源文件,那么这个方法就无效了。最后使用VS2012就好了。
4.error LNK2001: 无法解析的外部符号 "protected: virtual struct AFX_MSGMAP const * __thiscall SelectDLG::GetMessageMap(void)const " (?GetMessageMap@SelectDLG@@MBEPBUAFX_MSGMAP@@XZ)
解决方法:在类中多了一个“DECLARE_MESSAGE_MAP()”。删掉就可以了。
5.1>d:\projects\detectingcovertchannels\detectingcovertchannels\detectingcovertchannelsdlg.cpp(103): error C2039: “format”: 不是“ATL::CStringT<BaseType,StringTraits>”的成员
1> with
1> [
1> BaseType=wchar_t,
1> StringTraits=StrTraitMFC_DLL<wchar_t>
1> ]
解决方法:这个问题出现的原因是在调用Format成员时,错用称format。而且Format调用时需要对字符串进行_T("*****")处理。
本文详细介绍了C++编程中遇到的五个常见编译错误及其解决方案:errorC4335、errorC2447、LINK fatal error LNK1123、errorLNK2001和errorC2039。通过使用UltraEdit查看并删除不必要的字符、调整函数声明与函数体之间的语法、修改清单工具设置、删除多余的DECLARE_MESSAGE_MAP()和正确处理字符串调用Format成员的方法,可以有效解决这些错误。

437

被折叠的 条评论
为什么被折叠?



