我正在研究一些我不太熟悉的遗留代码。当我从visual studio 2012在visual studio 2015中重新编译我的项目时,我遇到了一个错误。
我有函数“_getts”的引用错误,这通常是其中的一部分 “TCHAR.H”。
我将我的visual studio 2012安装与我的2015安装进行了比较,我发现头文件“tchar.h”不再出货了。经过进一步的研究,我看到微软发布了“通用CRT”,现在包括我从2015年删除的一些头文件。在Microsoft文档中,我看到Visual Studio 2015仍然清楚地引用了“tchar.h”。
我觉得这很简单,我很清楚。如果有任何我错过的好文件,请提供。
由于
答案 0 :(得分:0)
_getts
只是一个宏定义,这就是链接器无法找到它的原因。尝试在main()
之前定义宏:
#define _getts _getws
答案 1 :(得分:0)
_getts
宏用于根据字符集设置解析为gets
(ANSI)或_getws
(Unicode)。这两个函数都已在VC ++ 2015中与宏本身一起退役。
来自Breaking Changes in Visual C++ 2015:
已删除gets和_getws函数。获取功能已从C11中的C标准库中删除,因为它无法安全使用。 _getws函数是Microsoft扩展,相当于获取但是对于宽字符串。作为这些函数的替代方法,请考虑使用fgets,fgetws,gets_s和_getws_s。