【发布时间】:2016-02-03 14:47:40
【问题描述】:
我正在处理一些我不太熟悉的遗留代码。当我从 Visual Studio 2012 重新编译 Visual Studio 2015 中的项目时遇到错误。
我对函数“_getts”有引用错误,这通常是 “tchar.h”。
我将我的 Visual Studio 2012 安装与我的 2015 安装进行了比较,我发现头文件“tchar.h”不再包含在发货安装中。经过进一步研究,我看到微软发布了“通用 CRT”,其中包含一些我看到的从 2015 年删除的头文件。在微软文档中,我看到 Visual Studio 2015 仍然明确引用“tchar.h”。
我认为这是一件非常简单的事情,以至于我明显忽略了这一点。如果有任何我错过的好文档也请提供。
谢谢
【问题讨论】:
-
gets() 已从 C11 和 C++11 标准中删除,其内置的缓冲区溢出错误使其非常危险。你需要移动到
_getts_s(),它需要一个额外的参数来指定缓冲区大小。 -
完美。感谢您的信息!
标签: c++ visual-studio-2012 visual-studio-2015 tchar