vs2005, 2008 使用了未初始化的msg变量

新建了一个win32 console Application 程序

将其默认主循环代码
“while (GetMessage(&msg, NULL, 0, 0))”
改为
“while(msg.message != WM_QUIT)”


编译没有error,但有“warning C4700: uninitialized local variable 'msg' used”

F5出现提示:“Run-Time Check Failure #3 - The variable 'msg' is being used without being initialized.”

msg需要怎样初始化?

答案:
1. 在进入while循环之前,先GetMessage(&msg,NULL,NULL,NULL);一次,让msg初始化。在循环体中应该再调用GetMessage或PeekMessage,否则就真成了死循环了。
2.
MSG msg;
msg.message = WM_NULL;
PeekMessage(&msg, NULL, 0U, 0U, PM_NOREMOVE);



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值