我在visual studio上遇到了问题。 我尝试使用“time.h”中的localtime函数。
Visual Studio告诉我这是一个不安全的功能。但是,我已经把这个用于我的学校练习。我看到您可以通过进入项目属性,构建选项卡并选中“启用不安全代码”来禁用此不安全错误。
然而,我没有构建选项卡,你可以在那里看到: http://puu.sh/4NkYC.png
我正在使用Windows 7和visual studio 2012 Ultimate。看起来“构建选项卡”和“启用不安全代码”已经消失:/ 也许你知道如何解决这个问题?
非常感谢:)
答案 0 :(得分:20)
您可以使用以下指令关闭警告:
#pragma warning(disable : 4996) //_CRT_SECURE_NO_WARNINGS
答案 1 :(得分:10)
localtime
标记为不安全,因为它返回指向静态分配的struct tm
的指针。这显然是一个坏主意。
因此,localtime_s
是微软发明的,它指向你分配的struct tm
。
struct tm timeinfo;
localtime_s(&timeinfo, &rawtime);
使用此(并使您的程序具有Microsoft特定性)或通过定义_CRT_SECURE_NO_WARNINGS
来关闭警告。
答案 2 :(得分:5)
Visual Studio(VS)编译器提供此错误。摆脱这个问题很简单。
此编译警告将消失。
答案 3 :(得分:3)
unsafe
是C#而不是C ++的一部分。例如,这些docs清楚地说
/ unsafe(C#编译器选项)
在顶部
在C ++中,visual studio会抱怨它认为是 unsecure 的函数,如果你不想要很多警告,建议你#define _CRT_SECURE_NO_WARNINGS
,例如
localtime
可能会为您提供以下内容:
警告C4996:'localtime':此函数或变量可能不安全。 请考虑使用localtime_s。要禁用弃用,请使用 _CRT_SECURE_NO_WARNINGS。有关详细信息,请参阅在线帮助。
答案 4 :(得分:1)
| Process name | Line of business | Customer | Potential customer | Employee | Vendor | COUNTIF | Process name_2 |
|--------------|------------------|----------|--------------------|----------|--------|---------|----------------|
| Ad campaign | Marketing | x | x | | x | 3 | Ad campaign |
| Payroll | HR | | | x | x | 2 | Ad campaign |
| | | | | | | | Ad campaign |
| | | | | | | | Payroll |
| | | | | | | | Payroll |