zoukankan      html  css  js  c++  java
  • 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);

    

  • 相关阅读:
    时序图
    用例图
    欢迎界面(闪屏)
    WBS
    闲来听书
    软件团队的模式
    结对编程
    在个人项目中,找bug,审核代码.
    时序图
    部分功能的实现
  • 原文地址:https://www.cnblogs.com/kex1n/p/2022123.html
Copyright © 2011-2022 走看看