게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
api 기본 예제 질문
게시물ID : programmer_10383짧은주소 복사하기
작성자 : ㅜ_ㅠ
추천 : 0
조회수 : 607회
댓글수 : 1개
등록시간 : 2015/05/23 18:34:35
스페이스바를 누르면 출력되는 문자가 #이고 그렇지 않으면 A로 출력되면서
방향키로 출력되는 문자가 이동하는 API 소스를 교재의 예제를 약간 변형해서 만들었는데요
근데 컴파일조차도 안되네요.ㅡ.ㅜ;
 
c:\lecture\winapi\win32_vs\win32_vs\win32.cpp(131): error C2664: 'TextOutW' : 매개 변수 4을(를) 'TCHAR'에서 'LPCWSTR'(으)로 변환할 수 없습니다.
1>          정수 계열 형식에서 포인터 형식으로 변환하려면 reinterpret_cast, C 스타일 캐스트 또는 함수 스타일 캐스트가 필요합니다.
 
라는 오류 메세지가 나오는데요
 
TextOut(hdc,x,y,a,1);
에서 TCHAR a;로 선언했는데 예전에 질문했던 아래의 링크처럼  static TCHAR str[2];으로 배열을 TCHAR형으로 선언해서
TextOut(hdc,100,100,str,lstrlen(str));으로 TCHAR형의 배열을 TextOut로 출력했었는데
왜 이번에는 TCHAR형을 변환할수 없다고 나오는지 통 모르겠네요.
 
http://www.todayhumor.co.kr/board/view.php?table=programmer&no=10167&s_no=10108825&kind=member&page=1&member_kind=total&mn=502142
 
그리고 제가 변경한 소스에서 어느부분인가 분명히 심각하게 잘못된 거 같은데 제 허접한 실력으로는 도저히 모르겠네요.
아시는 분 답변 주시면 고맙겠네요.
 

 #include <windows.h>
 
 
 LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
HINSTANCE g_hInst;
LPCTSTR lpszClass=TEXT("Key");
 
 
 int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance
   ,LPSTR lpszCmdParam,int nCmdShow)
{
 HWND hWnd;
 MSG Message;
 WNDCLASS WndClass;
 g_hInst=hInstance;
 
 
  WndClass.cbClsExtra=0;
 WndClass.cbWndExtra=0;
 WndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
 WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
 WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
 WndClass.hInstance=hInstance;
 WndClass.lpfnWndProc=WndProc;
 WndClass.lpszClassName=lpszClass;
 WndClass.lpszMenuName=NULL;
 WndClass.style=CS_HREDRAW | CS_VREDRAW;
 RegisterClass(&WndClass);
 
 
  hWnd=CreateWindow(lpszClass,lpszClass,WS_OVERLAPPEDWINDOW,
  CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
  NULL,(HMENU)NULL,hInstance,NULL);
 ShowWindow(hWnd,nCmdShow);
 
 
  while (GetMessage(&Message,NULL,0,0)) {
  TranslateMessage(&Message);
  DispatchMessage(&Message);
 }
 return (int)Message.wParam;
}
 
 
 LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
 HDC hdc;
 PAINTSTRUCT ps;
 static int x;
 static int  y;
 TCHAR a;
  switch (iMessage) {
  case WM_CHAR:
   if((TCHAR)wParam==' ')
  a='#';
  
   else
  a='A';
   break;
  case WM_KEYDOWN:
         switch(wParam)
         {
     case VK_LEFT:
         x-=8;
         break;
     case VK_RIGHT:
         x+=8;
         break;
     case VK_UP:
         y-=8;
         break;
     case VK_DOWN:
         y+=8;
         break;
   }
   InvalidateRect(hWnd,NULL,TRUE);
   break;
  case WM_PAINT:
  hdc=BeginPaint(hWnd,&ps);
  TextOut(hdc,x,y,a,1);
   EndPaint(hWnd,&ps);
  return 0;
 case WM_DESTROY:
  PostQuitMessage(0);
  return 0;
 }
 return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호