디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

코딩 에러 왜나는지좀 봐줘..ㅠㅠ

프로글래머(210.123) 2011.08.14 21:36:25
조회 58 추천 0 댓글 0

아래 코딩이 분명 내가 좀전까진 컴파일이 잘 됬는데, 딴짓하다가 다시 하니까

63개 오류와 2개의 경고 메세지가 뜨네.

예전에도 한번 이래서 컴파일러 밀고 다시 하니까 잘 된 기억이 있는데. 한번 아래 코드좀 컴파일 해주라 ㅠㅠ

내가 쓰는 컴파일러는 VS2008







#include <windows.h>
#include <process.h> //스레드를 실행시키기 위한 헤더 파일
#include <math.h>

typedef struct
{
 HWND hwnd;
 int cxClient;
 int cyClient;
 int cyChar;
 BOOL bKill;
} PARAMS, *PPARAMS;

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK WndProc1(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK WndProc2(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK WndProc3(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK WndProc4(HWND, UINT, WPARAM, LPARAM);
int CheckBottom(HWND hwnd, int, int, int);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
 static TCHAR wsAppName[] = TEXT("KeyView1");
 WNDCLASS wndclass;
 HWND hwnd;
 MSG msg;

 //부모 윈도우 사양 결정하기
 wndclass.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
 wndclass.lpfnWndProc = WndProc;
 wndclass.cbClsExtra = 0;
 wndclass.cbWndExtra = 0;
 wndclass.hInstance = hInstance;
 wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
 wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
 wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
 wndclass.lpszClassName = wsAppName;
 wndclass.lpszMenuName = NULL;

 //구조체의 시작번지 던져준다.
 if(!RegisterClass(&wndclass))
 {
  MessageBox(NULL, TEXT("This program requires Windows NT"), wsAppName, MB_IC);
  return 0;
 }


 //메모리에 응용프로그램의 윈도우를 만들어준다
 hwnd = CreateWindow(wsAppName, TEXT("Thread Test"),
  WS_OVERLAPPEDWINDOW,
  CW_USEDEFAULT, CW_USEDEFAULT,
  CW_USEDEFAULT, CW_USEDEFAULT,
  NULL, NULL, hInstance, NULL);

 //모니터에 부모윈도우를 출력한다
 ShowWindow(hwnd, iCmdShow);
 UpdateWindow(hwnd);

 //루프를 돌리며 응용프로그램 메세지 큐에 있는 메세지 가져와서 msg 구조체에 채워넣기
 while(GetMessage(&msg, NULL, 0, 0))
 {
  TranslateMessage(&msg);
  DispatchMessage(&msg);
 }

 return msg.wParam;
}

int CheckBottom(HWND hwnd, int cyClient, int cyChar, int iLine)
{
 if(iLine * cyChar + cyChar > cyClient)
 {
  InvalidateRect(hwnd, NULL, TRUE);
  UpdateWindow(hwnd);
  iLine = 0;
 }
 return iLine;
}

void Thread1(PVOID pvoid)
{
 HDC hdc;
 int iNum = 0, iLine = 0;
 PPARAMS pparams;
 TCHAR szBuffer[16];

 pparams = (PPARAMS)pvoid;

 while(!pparams->bKill)
 {
  if(iNum < 0)
   iNum = 0;
  iLine = CheckBottom(pparams->hwnd, pparams->cyClient, pparams->cyChar, iLine);
  hdc = GetDC(pparams->hwnd);

  TextOut(hdc, 0, iLine * pparams->cyChar, szBuffer, wsprintf(szBuffer, TEXT("%d"), iNum++));
  ReleaseDC(pparams->hwnd, hdc);
  iLine++;
 }
 _endthread();
}

LRESULT CALLBACK WndProc1(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
//단순히 1씩 증가 하는 숫자들의 시퀀스를 출력
{
 static PARAMS params;
 
  switch(message)
  {
  case WM_CREATE:
   params.hwnd = hwnd;
   params.cyChar = HIWORD(GetDialogBaseUnits());
   _beginthread(Thread1, 0, ¶ms);
  case WM_SIZE:
   params.cyClient = HIWORD(lParam);
   return 0;
  case WM_DESTROY:
   params.bKill = TRUE;
   return 0;
  }
return DefWindowProc(hwnd, message, wParam, lParam);
}

void Thread2(PVOID pvoid)
{
 HDC hdc;
 int iNum = 1, iLine = 0, i, iSqrt;
 PPARAMS pparams;
 TCHAR szBuffer[16];

 pparams = (PPARAMS)pvoid;

 while(!pparams->bKill)
 {
  do{  
    if(++iNum < 0)
     iNum = 0;
    iSqrt = (int)sqrt((double)iNum);

    for(i=2; i<=iSqrt; i++)
     if(iNum %i == 0)
      break;
   } while(i<=iSqrt);

   iLine = CheckBottom(pparams->hwnd, pparams->cyClient, pparams->cyChar, iLine);
   hdc = GetDC(pparams->hwnd);
   TextOut(hdc, 0, iLine*pparams->cyChar, szBuffer, wsprintf(szBuffer, TEXT("%d"), iNum++));

   ReleaseDC(pparams->hwnd, hdc);
   iLine++;
 }
 _endthread();
 }
LRESULT CALLBACK WndProc2(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
//소수의 시퀀스를 출력
{
 static PARAMS params;
 
  switch(message)
  {
  case WM_CREATE:
   params.hwnd = hwnd;
   params.cyChar = HIWORD(GetDialogBaseUnits());
   _beginthread(Thread2, 0, ¶ms);
  case WM_SIZE:
   params.cyClient = HIWORD(lParam);
   return 0;
  case WM_DESTROY:
   params.bKill = TRUE;
   return 0;
  }
  return DefWindowProc(hwnd, message, wParam, lParam);
}

void Thread3(PVOID pvoid)
{
 HDC hdc;
 int iNum = 0, iNext = 1, iLine = 0, iTemp;
 PPARAMS pparams;
 TCHAR szBuffer[16];

 pparams = (PPARAMS)pvoid;

 while(!pparams->bKill)
 {
  if(iNum < 0)
  {
   iNum = 0;
   iNext = 1;
  }

  iLine = CheckBottom(pparams->hwnd, pparams->cyClient, pparams->cyChar, iLine);
  hdc = GetDC(pparams->hwnd);

  TextOut(hdc, 0, iLine * pparams->cyChar, szBuffer, wsprintf(szBuffer, TEXT("%d"), iNum));
  ReleaseDC(pparams->hwnd, hdc);
  iTemp = iNum;
  iNum = iNext;
  iNext += iTemp;
  iLine ++;
 }
 _endthread();
}

LRESULT CALLBACK WndProc3(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
//피보나치수열의 시퀀스를 출력
{
 static PARAMS params;
 
  switch(message)
  {
  case WM_CREATE:
   params.hwnd = hwnd;
   params.cyChar = HIWORD(GetDialogBaseUnits());
   _beginthread(Thread3, 0, ¶ms);
  case WM_SIZE:
   params.cyClient = HIWORD(lParam);
   return 0;
  case WM_DESTROY:
   params.bKill = TRUE;
   return 0;
  }
  return DefWindowProc(hwnd, message, wParam, lParam);
}

void Thread4(PVOID pvoid)
{
 HDC hdc;
 int iDiameter;
 PPARAMS pparams;

 pparams = (PPARAMS)pvoid;

 while(!pparams->bKill)
 {
   InvalidateRect(pparams->hwnd, NULL, TRUE);
   UpdateWindow(pparams->hwnd);

   iDiameter = rand() % (max(1, min(pparams->cxClient, pparams->cyClient)));
   hdc = GetDC(pparams->hwnd);

   Ellipse(hdc, (pparams->cxClient - iDiameter) / 2, (pparams->cyClient - iDiameter) / 2,
    (pparams->cxClient + iDiameter) / 2, (pparams->cyClient + iDiameter) / 2);
  
   ReleaseDC(pparams->hwnd, hdc);
 }
 _endthread();
}

LRESULT CALLBACK WndProc4(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
 static PARAMS params;
 
  switch(message)
  {
  case WM_CREATE:
   params.hwnd = hwnd;
   params.cyChar = HIWORD(GetDialogBaseUnits());
   _beginthread(Thread4, 0, ¶ms);
  case WM_SIZE:
   params.cyClient = HIWORD(lParam);
   params.cxClient = LOWORD(lParam);
   return 0;
  case WM_DESTROY:
   params.bKill = TRUE;
   return 0;
  }
  return DefWindowProc(hwnd, message, wParam, lParam);
}

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
 static HWND hwndChild[4];
 static TCHAR * szChildClass[] = {TEXT("Child1"), TEXT("Child2"), TEXT("Child3"), TEXT("Child4")};
 static WNDPROC ChildProc[] = { WndProc1, WndProc2,WndProc3, WndProc4 };
 HINSTANCE hInstance;
 int i, cxClient, cyClient;
 WNDCLASS wndclass;

  switch(message)
  {
  case WM_CREATE:
  hInstance = (HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE);

  wndclass.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
  wndclass.cbClsExtra = 0;
  wndclass.cbWndExtra = 0;
  wndclass.hInstance = hInstance;
  wndclass.hIcon = NULL;
  wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
  wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
  wndclass.lpszMenuName = NULL;

  for(i=0; i<4; i++)
  {
   wndclass.lpfnWndProc = ChildProc[i];
   wndclass.lpszClassName = szChildClass[i];

   RegisterClass(&wndclass);

   hwndChild[i] = CreateWindow(szChildClass[i], NULL, WS_CHILDWINDOW | WS_BORDER | WS_VISIBLE,
       0, 0, 0, 0, hwnd, (HMENU)i, hInstance, NULL);
  }
  return 0;

  case WM_SIZE:
   cxClient = LOWORD(lParam);
   cyClient = HIWORD(lParam);

   for(i=0; i<4; i++)
  {
    MoveWindow(hwndChild[i], (i%2)*cxClient / 2, (i>1)*cyClient / 2,
    cxClient / 2, cyClient / 2, TRUE);
  }
  return 0;
  case WM_CHAR:
   if(wParam == \'\\x1B\')
    DestroyWindow(hwnd);
   return 0;
  case WM_DESTROY:
   PostQuitMessage(0);
   return 0;
  }
 return DefWindowProc(hwnd, message, wParam, lParam);
}

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 기 세보여도 실제로는 멘탈 약할 것 같은 스타는? 운영자 24/11/04 - -
이슈 [디시人터뷰] 라이징 스타로 인정받은 걸그룹, ‘리센느(RESCENE)’ 운영자 24/11/08 - -
282084 요번주 넥슨 공채 필기 보러가는사람 [1] 서버플머갤로그로 이동합니다. 11.10.19 108 0
282083 가위바위보프로그램인데 [1] 23424(222.232) 11.10.19 62 0
282082 민원 신고 완료 ㅋㅋㅋㅋ [16] iljeomobolt갤로그로 이동합니다. 11.10.19 667 0
282081 사랑하는 여자가 암이라면.. 너네는 어떻게 할래?? [5] 쿄스케갤로그로 이동합니다. 11.10.19 138 0
282080 저런옷입고 저런 포즈 어떻게 생각하냐? [7] iljeomobolt갤로그로 이동합니다. 11.10.19 152 0
282079 갤러들아 나에게 힘을줘 [2] 534F444D61737465갤로그로 이동합니다. 11.10.19 43 0
282076 이진트리구조에 대해 질문 [2] dp(121.186) 11.10.19 80 0
282075 페도라 리눅스15를 깔고 개발 패키지 까는 중!! [2] 거칠게갤로그로 이동합니다. 11.10.19 48 0
282074 아오 내일부터 시험이다!!! [2] 회색사과갤로그로 이동합니다. 11.10.19 39 0
282073 음.. 3년제 좆문대다니는데 어떻게 해야 졸업후에 그나마 성공할수있을까? [3] 버리는캐갤로그로 이동합니다. 11.10.19 135 0
282072 2의 보수 -1 표현할 수 있는 최소 비트 수 몇일까 [1] !457♥8(211.246) 11.10.19 73 0
282071 형들 goto를대체하는 조건문이 뭐지??? [3] forhappiness갤로그로 이동합니다. 11.10.19 84 0
282069 좋은소리하는것도 좋지만.. [11] 일광면(119.198) 11.10.19 137 0
282068 java 템플릿 클래스를 인자로 받을때.. 어떻게 쓰냐. [5] 코코(112.161) 11.10.19 73 0
282066 ㄱㄷㄹ형님감사합니다 ㅠㅠ [4] 233(222.232) 11.10.19 69 0
282065 형님들 c언어 공부하다 막혀서 그런데 제발 도움좀 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ [12] ㅇㅇ(121.127) 11.10.19 164 0
282064 하후횽 봄니다! 회색사과갤로그로 이동합니다. 11.10.19 35 0
282063 ㄱㄷㄹ 횽아 ㅠㅠ [5] 233(222.232) 11.10.19 66 0
282062 큼파일러에서 정규표현을 정규문법으로 바꾸는거 잘 하는 사람만 보세요 [1] 하후(210.107) 11.10.19 50 0
282060 야 근데 233 말 생각하다보니 생각났는데 if else문말야 [2] ㄱㄷㄹ갤로그로 이동합니다. 11.10.19 54 0
282059 피방가서 배필할라고 질렀는데 [2] elwlwlwk갤로그로 이동합니다. 11.10.19 83 0
282058 도와주셈 ㅠㅠ 오름차순 늅늅이에게 자비좀 ㅠㅠ [9] 233(222.232) 11.10.19 78 0
282057 오름차순 질문한 뉴비인데 ㅠ [2] 233(222.232) 11.10.19 50 0
282056 C++ 시작한지 뭐 한 7장째? [4] 로하로하알로하갤로그로 이동합니다. 11.10.19 73 0
282054 세상에 맙소사 .. 함수 오버로딩 뭐냐 [4] 로하로하알로하갤로그로 이동합니다. 11.10.19 58 0
282053 성대아싸형 혹시 있나 [3] 도루도라갤로그로 이동합니다. 11.10.19 85 0
282052 형들 비트연산 질문점여 [5] 플래닛댄스갤로그로 이동합니다. 11.10.19 65 0
282051 C++ 쩐다! [9] 로하로하알로하갤로그로 이동합니다. 11.10.19 140 0
282050 네오위즈 어떠냐? [5] 프갤러러(210.205) 11.10.19 140 0
282049 나는 복붙이 싫어 [5] 돌아이바갤로그로 이동합니다. 11.10.19 47 0
282047 Programming Challenges 본 사람 있나? [1] 도루도라갤로그로 이동합니다. 11.10.19 58 0
282046 23년동안 살면서 병신같이 산것같다 ㅜㅜ [1] healslave갤로그로 이동합니다. 11.10.19 85 0
282045 SQL Injection을 실생활에 적용하는 방법 [6] ㄱㄷㄹ갤로그로 이동합니다. 11.10.19 171 0
282044 input 태그에 숫자만 쓸수있게 만들고 싶다. [7] 쵸쵸(219.251) 11.10.19 55 0
282043 와 비쥬얼 스튜디오 까는데 이거 압축을 어떻게 한거야? [5] 로하로하알로하갤로그로 이동합니다. 11.10.19 61 0
282042 형아들, 콘솔창 색깔 한번 설정하면 계속 그설정 따라가게 어떡해요? [5] Re-FEEL갤로그로 이동합니다. 11.10.19 79 0
282041 근데 sts이거 왜캐무겁냐 [1] 돌아이바갤로그로 이동합니다. 11.10.19 35 0
282040 visual studio 이거ㅇ ㅓ케 까는거냐 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ [2] 로하로하알로하갤로그로 이동합니다. 11.10.18 60 0
282038 밑에 233한테 준다. [2] 코코(112.161) 11.10.18 39 0
282037 Linking... 중에 멈춰 버리는경우 [7] Kkobuk갤로그로 이동합니다. 11.10.18 52 0
282036 어후 최신공업수학 책 다 공부하려는건 미친짓일까. [1] 534F444D61737465갤로그로 이동합니다. 11.10.18 70 0
282034 부탁인데 이것만 좀 ㅠㅠ 굽싡 [7] 233(222.232) 11.10.18 74 0
282032 예전에는 프갤 횽들이~ 1234(110.11) 11.10.18 31 0
282031 근데 프린트f 는 뭐가 좋아? [5] 회색사과갤로그로 이동합니다. 11.10.18 73 0
282030 횽들 자바스크립트로 ftp 주소에 텍스트 파일 저장할 수 있긴 한거야?? [2] 순록(175.211) 11.10.18 75 0
282028 쉐이더만지작거리는횽들있나? [4] AS3.0갤로그로 이동합니다. 11.10.18 53 0
282027 횽드라 도와주세요 ㅠㅠ chobo(115.21) 11.10.18 32 0
282026 c프로그래밍 할때 USB에 workspace 만들고 컴파일하면서 하는데요 [4] Kkobuk갤로그로 이동합니다. 11.10.18 66 0
282025 c만 파기 vs 정보처리기사와 c같이 파기 [2] 오마이갓넬갤로그로 이동합니다. 11.10.18 60 0
282024 나도내일컴파일러시험인데!!! [8] 즐쿰갤로그로 이동합니다. 11.10.18 83 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2