解决编译错误:C4996:‘GetMouseMsg‘: This function is deprecated.

160 篇文章 11 订阅
152 篇文章 20 订阅

问题概述

EasyX 提供了两个头文件:

  • graphics.h
  • easyx.h

easyx.h 包含最新的函数,并且删掉了旧函数。graphics.h 引用了 easyx.h,同时提供了对旧函数的支持。使用 graphics.h 里面提供的旧函数时,会收到一个 Warning C4996,例如使用旧函数 GetMouseMsg,会收到编译提醒:

C4996:'GetMouseMsg': This function is deprecated. Instead, use this new function: getmessage. See https://docs.easyx.cn/getmessage for details.

在过去,Visual C++ 默认会将 C4996 归类为 Warning。新版本 VC++ 默认会将 C4996 归类为 Error,导致无法编译。

解决方法

如果需要编译含有旧版本函数的代码,需要设置项目属性,不要把 C4996 当作 Error 即可。有两种方法设置,任选其一:

1. 使用代码设置

在代码前面增加一条预编译指令:

#pragma warning(default: 4996)

再次编译项目,之前的 error 会变成 warning,项目可以编译通过。

2. 修改项目设置

在 VS 的 Solution Explorer 里右击项目名称,选 Properties,在弹出的窗口中,设置 Configuration Properties -> C/C++ -> General -> SDL checks 为 No (/sdl-),如下图所示:

 再次编译项目,会看到 C4996 会标记为 Warning,不影响编译。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值