gpt4 book ai didi

c++ - 如何初始化句柄

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:49:58 24 4
gpt4 key购买 nike

错误:

Run-Time Check Failure #3 - The variable 'TextLabelVar' is being used without 
being initialized.

示例代码:

HWND VarText;
char Disps[100];
float some_number;
WINAPI WndProc(..)
{

switch(...)
case WM_CREATE:
TextLabelVar=CreateWindowEx(WS_EX_WINDOWEDGE,TEXT("Edit"), TEXT("Val."), WS_CHILD \
| WS_VISIBLE, 380, 50, 140, 20, hwnd, NULL, NULL, NULL);
break;

case WM_MESSAGEFROMANOTHERWINDOW:
some_number=1298.123123;
sprintf(Disps,"%f",some_number);
SetWindowText(TextLabelVar,TEXT(Disps));

}

问题:好的,我收到错误 TextLabelVar is being used without initialization。我对 var Disps 有类似的错误。然后我宣布 char Disps[100];这表明没有错误。现在,错误移到了句柄上。我不确定我是否可以将句柄声明为数组,这是否有意义。我该如何解决这个问题?

最佳答案

这是一个运行时错误。它告诉您的是 TextLabelVar 在初始化之前被读取。这意味着 WM_MESSAGEFROMANOTHERWINDOW case 语句在 WM_CREATE 之前执行。

根据您已将 0 分配给 TextLabelVar 以抑制警告的注释,但是当然对 SetWindowText 的调用无法成功,因为您传递的窗口句柄是 0

要解决此问题,您需要了解为什么要在 WM_CREATE 之前处理 WM_MESSAGEFROMANOTHERWINDOW

关于c++ - 如何初始化句柄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17484490/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com