Question

Error:

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

Illustrative Code:

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));

}

Question: Ok, I get the error TextLabelVar is being used without initialisation. I got similar error for var Disps. I then declared char Disps[100]; This showed no error. Now, the error moves onto a handle. I am not sure I can declare a handle as array and it makes sense. How do I solve this?

Was it helpful?

Solution

This is a run-time error. What it is telling you is that TextLabelVar is being read before it has been initialised. And that means that the WM_MESSAGEFROMANOTHERWINDOW case statement executed before WM_CREATE.

From the comments you've assigned 0 to TextLabelVar to suppress the warning, but then of course the call to SetWindowText cannot succeed since the window handle you pass is 0.

To tackle the problem you need to understand why WM_MESSAGEFROMANOTHERWINDOW is being handled before WM_CREATE.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top