ok,
just got this beast working...but now when i try to reclaim memory it crashes (of course if i leave the pointers in existence everything is fine)
but i want to reclaim the memory, what am i doing wrong here? i must be overwriting somewhere. thanks.
Code:#include <windows.h> typedef HWND WindowHandle; typedef MSG WindowMessage; typedef WNDCLASS WindowClass; typedef HINSTANCE WindowInstance; typedef HDC DeviceHandle; typedef HICON WindowIcon; typedef HCURSOR WindowCursor; typedef HBRUSH WindowBrush; typedef WNDPROC WindowsProcedureVariable; static TCHAR szAppName[]=TEXT("Hungarians Suck"); WindowHandle window; WindowMessage message; WindowClass _class; unsigned int * Style=&_class.style; WindowsProcedureVariable * WindowsProcedureName=&_class.lpfnWndProc; int * WindowClassExtraInfo=&_class.cbClsExtra; int * WindowExtraInfo=&_class.cbWndExtra; WindowInstance * WindowInstanceName=&_class.hInstance; WindowIcon * Icon=&_class.hIcon; WindowCursor * Cursor=&_class.hCursor; WindowBrush * Background=&_class.hbrBackground; const char ** MenuName=&_class.lpszMenuName; const char ** ClassName=&_class.lpszClassName; LRESULT CALLBACK WindowsProcedure(WindowHandle,UINT,WPARAM,LPARAM); int WINAPI WinMain (WindowInstance instance,WindowInstance prevInstance,LPSTR CommandLine,int ShowCommand) { *Style=CS_HREDRAW|CS_VREDRAW; *WindowsProcedureName=WindowsProcedure; *WindowClassExtraInfo=0; *WindowExtraInfo=0; *WindowInstanceName=instance; *Icon=LoadIcon(NULL,IDI_APPLICATION); *Cursor=LoadCursor(NULL,IDC_ARROW); *Background=(HBRUSH)GetStockObject(WHITE_BRUSH); *MenuName=NULL; *ClassName=szAppName; if (!RegisterClass(&_class)) { MessageBox(NULL,TEXT("This Program Requires Windows NT"),szAppName,MB_ICONERROR); return 0; } window=CreateWindow(szAppName, TEXT("Hello World From The Anti-Hungarian Society"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, instance, NULL); ShowWindow(window,ShowCommand); UpdateWindow(window); while (GetMessage(&message,NULL,0,0)) { TranslateMessage(&message); DispatchMessage(&message); } /* delete Style; Style=NULL; delete WindowsProcedureName; WindowsProcedureName=NULL; delete WindowClassExtraInfo; WindowClassExtraInfo=NULL; delete WindowExtraInfo; WindowExtraInfo=NULL; delete WindowInstanceName; WindowInstanceName=NULL; delete Icon; Icon=NULL; delete Cursor; Cursor=NULL; delete Background; Background=NULL; delete MenuName; MenuName=NULL; delete ClassName; ClassName=NULL; */ return message.wParam; } LRESULT CALLBACK WindowsProcedure (WindowHandle window, UINT message, WPARAM wParam, LPARAM lParam) { DeviceHandle DeviceHandle; PAINTSTRUCT pstruct; RECT rect; switch (message) { case WM_CREATE: return 0; case WM_PAINT: DeviceHandle=BeginPaint(window,&pstruct); GetClientRect(window,&rect); DrawText(DeviceHandle,TEXT("Hungarians Suck!"),-1,&rect, DT_SINGLELINE|DT_CENTER|DT_VCENTER); EndPaint(window,&pstruct); return 0; case WM_DESTROY: PostQuitMessage(0); return 0; } return DefWindowProc(window,message,wParam,lParam); }



LinkBack URL
About LinkBacks
) 


