Win32API 기본소스
눈내리던날
WinAPI 입문을 위해서 열심히 책을 따라 코딩했어요그런데
소스:
#includewindows.h#includeWinUser.h#includetchar.h
HINSTANCE g_hInst;LPWSTR lpszClass = LApiBase;
LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam){ switch (iMessage) { case WM_DESTROY: PostQuitMessage(0); return 0; } return(DefWindowProc(hWnd, iMessage, wParam, lParam));}
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdParam, int nCmdShow){ HWND hWnd; MSG Message; WNDCLASS WndC; g_hInst = hInstance;
//WNDCLASS Struct WndC.cbClsExtra = 0; //클래스 여분 바이트 수 WndC.cbWndExtra = 0; //윈도우 여분 바이트 수 WndC.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); //윈도우 배경색 WndC.hCursor = LoadCursor(NULL, IDC_ARROW); //프로그램 커서 WndC.hIcon = LoadIcon(NULL, IDI_APPLICATION); //프로그램 아이콘 WndC.hInstance = hInstance; //인스턴스 핸들 WndC.lpfnWndProc = (WNDPROC)WndProc; //프로시저 함수명 WndC.lpszMenuName = NULL; //클래스명 WndC.style = CS_HREDRAW | CS_VREDRAW; //윈도우 스타일
//레지스터 클래스로 적용 RegisterClass(&WndC); //윈도우 설정 hWnd = CreateWindow(lpszClass, lpszClass, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, (HMENU)NULL, hInstance, NULL);
//윈도우 표시 ShowWindow(hWnd, nCmdShow);
//체크 if (hWnd == NULL){ MessageBox(NULL, L윈도우 생성실패, L에러, MB_ICONERROR | MB_OK); return -1; }
while (GetMessage(&Message, 0, 0, 0)) { TranslateMessage(&Message); DispatchMessage(&Message); }
return Message.wParam;}
이게 기본 형식이라고 알고 있습니다.그대로 했고, 에러도 안뜨는데,창이 아예 안뜨네요;그리고 F11눌러서 디버그해보니까RegisterClass(&WndC);부분에서 이상한 에러가 나더라고요
그 에러는____________________________
0x774C29D8(ntdll.dll)에(Win32APItest.exe의) 처리되지 않은 예외가 있습니다. 0xC0000005: 0xCCCCCCCC 위치를 읽는 동안 액세스 위반이 발생했습니다..
입니다.
왜이런걸까요?