【问题标题】:Error when converting .obj to openGL将 .obj 转换为 openGL 时出错
【发布时间】:2014-04-22 00:00:58
【问题描述】:

当我将 .obj 文件转换为 openGL 时,我遇到了一些错误。我不确定如何解决该错误。我已将符号更改为 >,但错误仍然存​​在。

1>------ Build started: Project: LoadObj Trial, Configuration: Release Win32 ------
1>  LoadObj Trial.cpp
1>LoadObj Trial.cpp(78): warning C4018: '<' : signed/unsigned mismatch
1>LoadObj Trial.cpp(90): error C4996: 'sscanf': This function or variable may be unsafe. Consider using sscanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>          D:\VISUAL STUDIO\VC\include\stdio.h(311) : see declaration of 'sscanf'
1>LoadObj Trial.cpp(109): warning C4018: '<' : signed/unsigned mismatch
1>LoadObj Trial.cpp(134): warning C4018: '<' : signed/unsigned mismatch
1>LoadObj Trial.cpp(136): warning C4018: '<' : signed/unsigned mismatch
1>LoadObj Trial.cpp(138): warning C4018: '<' : signed/unsigned mismatch
1>LoadObj Trial.cpp(140): warning C4018: '<' : signed/unsigned mismatch
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

【问题讨论】:

  • 谢谢 Andon M. Coleman 爵士。对不起,先生,不太清楚。 VC++中的项目设置在哪里。我可以找到专栏。

标签: c++ opengl


【解决方案1】:

LoadObj Trial.cpp(90):错误 C4996:“sscanf”:此函数或变量可能不安全。考虑改用 sscanf_s。要禁用弃用,请使用 _CRT_SECURE_NO_WARNINGS。有关详细信息,请参阅在线帮助。

1> D:\VISUAL STUDIO\VC\include\stdio.h(311) : 见 'sscanf' 的声明

这并不是真正的错误,它与 OpenGL 无关。那就是 MSVC 编译器将 a level 3 security/deprecation warning 视为编译器错误。您的项目可能配置为将 3/4 级警告视为错误。

要解决“错误”,您可以使用它建议的变体(这将使您的代码相当不可移植),或者只需添加#define _CRT_SECURE_NO_WARNINGS 或将该定义添加到项目设置中的预处理器定义中。

其他警告,但是,如果不查看您的代码就无法诊断。并且可以假设简单地切换比较的方向不会做任何事情有用,这可能会破坏事情并且无助于解决比较有符号和无符号值的问题。


关于进行预处理器定义,我提到了项目范围的设置,请参见以下屏幕截图 (Visual Studio 2013 Pro):

  

【讨论】:

  • @user3557114:是的,std::vector &lt;...&gt;::size () 通常会返回类似size_t 的东西,它是未签名的。 int 本身通常是签名的。您可以使用迭代器循环遍历元素,以这种方式编写循环:std::vector &lt;...&gt;::size_type i = 0 或仅使用size_t i 以避免此编译器警告。该警告在此代码中非常不重要,因为您只 increase 的值 i 并且您是否会在您的向量导致有符号溢出。
  • glEndList(); //删除所有内容以避免内存泄漏 for(int i=0;i
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-30
  • 1970-01-01
  • 1970-01-01
  • 2015-06-20
  • 2017-06-27
  • 1970-01-01
相关资源
最近更新 更多