错误:

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的错误。对于var Disps,我也遇到类似的错误。然后我声明了char Disps [100];这没有显示错误。现在,错误移到句柄上。我不确定是否可以将句柄声明为数组,这是否有意义。我该如何解决?

最佳答案

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

从注释中,您已经将0分配给TextLabelVar以禁止显示警告,但是由于您传递的窗口句柄是SetWindowText,因此当然不能成功调用0

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

10-04 12:59