in C/C++

Visual Studio 2019碰到的几个问题(C3861,RC1015,C2039等)

小结

最近在Visual Studio 2019中碰到的几个问题:C3861,RC1015,C2039等,另外还有一个启动调试时碰到‘系统找不到相应的文件’问题,解决了这些问题。

问题及解决

C3861和C2039

error C3861: ‘gets’: identifier not found

对于这个error C3861: 'gets': identifier not found的问题,自从C11后,gets()已经被 gets_s()所替代,因为gets_s()会进行边界检查,防止边界溢出。

所以将gets()已经被 gets_s()进行替换可以解决问题。

其它的 Identifier not found.C3861和C2039

我这里碰到的是头文件的问题,这里C3861返回的是identifier not found,而C2039返回的是xxx: is not a member of global namespace,需要把库文件头和系统文件头放到最上面。
例如我的#include "RoboticArmJetmax.hpp"移到所有的头文件前面,这两个报错可以神奇消失。

fatal error RC1015: cannot open include file ‘afxres.h’

解决办法比较简单,是由于缺少MFC的包,好像Visual Studio从2015版本后就没有安装MFC包,不需要安装,只需将#include "afxres.h"替换为#include<windows.h>

“The system cannot find the file specified”

开始启动调试时碰到‘系统找不到相应的文件’问题, The system cannot find the file specified, 这里主要是检查工程的属性:工程属性 -> Linker -> Output file -> $(OutDir)$(TargetName)$(TargetExt),如果配置不正确就会出现这个问题。

参考

Stackoverflow: gets() function is not available in Visual studio 2015 community
fatal error RC1015: cannot open include file ‘afxres.h’
“The system cannot find the file specified” when running C++ program
Stackoverflow: Identifier not found.C3861
Code project: Solution for C++ error c2039 is not a member of global namespace

Write a Comment

Comment