Pointers, casting, SetGetWindowLong problem...
    Chris Warwick 
    sp at m.me.not
       
    Fri Mar  9 15:16:34 PST 2007
    
    
  
Hi, i use this to create and show my window
            HINSTANCE hinstance = GetModuleHandleA(null);
            fhandle = CreateWindowExA(
                WS_EX_APPWINDOW, "CjWindow", "Testing 123", WS_TILEDWINDOW,
                x, y, width, height, HWND_DESKTOP, cast(HMENU) null,
                hinstance, null);
            SetWindowLongA(fhandle, 0, cast(LONG) cast(VOID*) this);
            ShowWindow(fhandle, SW_SHOW);
And this in my WindowProc
    TWindow window = cast(TWindow) cast(void*)  GetWindowLongA(handle, 0);
    if (window == null)  return DefWindowProcA(handle, msg, wparam, lparam);
but i keep getting an access violation on the if (window == null),
if i change it to
    if (window == null) beep(400,50)
i still get it, the AV that is, but if i just skip the check and call the
DefWindoProcA it works fine.
I cant work out why, even if i have fecked up the casting or setting of the
the windowLong var, testing what was returned against null shouldnt cause an
AV should it?
Anycase, any ideas what I've done wrong?
cheers,
cw
    
    
More information about the Digitalmars-d-learn
mailing list