【问题标题】:No support for VS2015 in OpenGL GLI?OpenGL GLI 不支持 VS2015?
【发布时间】:2016-11-09 03:18:44
【问题描述】:

我正在尝试在我的 Visual Studio 2015 项目中使用 'OpenGL Image' library,但由于以下错误而无法成功编译它:

c:\users\sabro_000\downloads\gli-0.8.1.1\gli./core/load.inl(32): error C4996: 'fopen': 这个函数或变量可能不安全。考虑改用 fopen_s。要禁用弃用,请使用 _CRT_SECURE_NO_WARNINGS。有关详细信息,请参阅在线帮助。

上面的错误对我来说一点都不陌生,因为我经常看到这个错误消息,我总是尝试在 VS2015 中使用已弃用的fopen。每当我看到这条消息时我一直在做的事情不是进入_CRT_SECURE_NO_WARNINGS,而是直接使用fopen_s(),正如消息所暗示的那样,因为这样更容易解决。

但是现在我在 OpenGL GLI 中遇到了这个错误,想知道有人在 VS2015 上使用 OpenGL GLI 是如何摆脱这个错误的。

【问题讨论】:

    标签: c++ opengl glm-math


    【解决方案1】:

    首先,这是一个警告,而不是错误(至少在默认设置下)。这意味着即使出现此警告,您也可以正常构建和运行代码。

    其次,简单的解决方案是按照警告和#define _CRT_SECURE_NO_WARNINGS 进行操作(或者只是通过项目属性将宏添加到编译命令行)。请注意,以_s 结尾的“更安全”函数从未真正被微软以外的 C 标准库供应商采用,并且有一个 proposal 再次将它们从标准中删除。最好不要使用它们。

    【讨论】:

    • 正如您所建议的,在我在整个项目中包含任何标题之前插入 #define _CRT_SECURE_NO_WARNINGS 行就可以了。我喜欢这种解决方案。我也同意让微软删除所有 _s 函数。非常感谢。
    • @nursmaul 你当然也可以使用项目设置来为所有源文件定义它,如果这是你的偏好(它会是我的)。
    • 好的,这也是我的偏好。 :-)
    猜你喜欢
    • 1970-01-01
    • 2018-08-19
    • 2016-05-07
    • 2012-01-22
    • 1970-01-01
    • 2016-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多