error C3861: “_T”: 找不到标识符
2016-08-03 17:23
1321 查看
头天好好的程序,第二天一早就报错,还是莫名其妙的错误:atlconv.h等头文件中的“_T” 报错,百思不得其解,各种搜索而不得,整个人都崩溃了。
出问题一定是有原因的,后来冷静下来,缕缕思路,逐一排查。
有一点可以确定:程序本身是没问题的,出错是在字符集,因为备份的程序也报同样的错误。
既然在atlconv.h等头文件中,试试替换VS安装目录中的atlmfc目录下的这些文件。虽然这些文件是VS自带的atl头文件,自己也没改动过,但不代表它没被改过。从同事那里拷贝过来头文件,替换,程序仍然报错。
后来,又测试新建的win32 程序,也报错,,,,,,那就只能是定义了"_T"的头文件出错了吧。
找到电脑中名字为tchar.h的所有文件
删除第二个头文件,程序找不到头文件;用前者替换第二个头文件,编译OK!
反思:出问题一定有原因,不要感觉莫名其妙,不要固执的认为自己什么都没动,文件就不会变;什么都没改,程序就不应该出错,系统改动过了呢。多测试多排查,各种可能都要考虑。
后记:应该是所有_T的地方都报错,只是不能输出显示那么多。最后一个错误 “无法从以前的错误中恢复;正在停止编译”,表示错误太多,编译器已停止编译。
出问题一定是有原因的,后来冷静下来,缕缕思路,逐一排查。
有一点可以确定:程序本身是没问题的,出错是在字符集,因为备份的程序也报同样的错误。
既然在atlconv.h等头文件中,试试替换VS安装目录中的atlmfc目录下的这些文件。虽然这些文件是VS自带的atl头文件,自己也没改动过,但不代表它没被改过。从同事那里拷贝过来头文件,替换,程序仍然报错。
后来,又测试新建的win32 程序,也报错,,,,,,那就只能是定义了"_T"的头文件出错了吧。
找到电脑中名字为tchar.h的所有文件
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\crt\src\tchar.h C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\tchar.h发现VS目录中有这两个,然后对比两个文件的MD5码,竟然不一样!发现后者中的tchar.h文件早上被改动过了,,,,,,,欲哭无泪-_-
删除第二个头文件,程序找不到头文件;用前者替换第二个头文件,编译OK!
反思:出问题一定有原因,不要感觉莫名其妙,不要固执的认为自己什么都没动,文件就不会变;什么都没改,程序就不应该出错,系统改动过了呢。多测试多排查,各种可能都要考虑。
后记:应该是所有_T的地方都报错,只是不能输出显示那么多。最后一个错误 “无法从以前的错误中恢复;正在停止编译”,表示错误太多,编译器已停止编译。
相关文章推荐
- error C3861: “setw”: 找不到标识符;error C3861:'setw': identifier not found
- 编译错误之error C3861: “getline”: 找不到标识符
- HM低版本用VS2012打开编译错误问题error C3861: “mem_fun”: 找不到标识符
- error C3861,找不到标识符
- error C3861: back_inserter : 找不到标识符(+补充新问题)
- 编译错误之error C3861: “xxxx”: 找不到标识符
- error C3861: “_T”: 找不到标识符
- error c3861 :"_T":找不到标识符
- error C3861: “gets”: 找不到标识符
- C++问题-UniqueAppObject.cpp(147): error C3861: “GUXClientInit”: 找不到标识符
- error C3861: back_inserter : 找不到标识符(+补充新问题)
- error C3861: “cvCalcPGH”: 找不到标识符
- error C3861: “GdiplusStartup”: 找不到标识符
- error C3861: “glBlendEquation”: 找不到标识符
- error C3861 CComVariant 找不到标识符
- 编译错误之error C3861: “GetDynamicTimeZoneInformation”: 找不到标识符
- error C3861: “LGetModulePath”: 找不到标识符
- error C3861: “cvRound”: 找不到标识符
- error C3861: “xxxx”: 找不到标识符
- C++ 错误 2 error C3861: “__cpuidex”: 找不到标识符