<div>스페이스바를 누르면 출력되는 문자가 #이고 그렇지 않으면 A로 출력되면서</div> <div>방향키로 출력되는 문자가 이동하는 API 소스를 교재의 예제를 약간 변형해서 만들었는데요</div> <div>근데 컴파일조차도 안되네요.ㅡ.ㅜ;</div> <div> </div> <div>c:\lecture\winapi\win32_vs\win32_vs\win32.cpp(131): error C2664: 'TextOutW' : 매개 변수 4을(를) 'TCHAR'에서 'LPCWSTR'(으)로 변환할 수 없습니다.<br>1> 정수 계열 형식에서 포인터 형식으로 변환하려면 reinterpret_cast, C 스타일 캐스트 또는 함수 스타일 캐스트가 필요합니다.</div> <div> </div> <div>라는 오류 메세지가 나오는데요</div> <div> </div> <div>TextOut(hdc,x,y,a,1);</div> <div>에서 TCHAR a;로 선언했는데 예전에 질문했던 아래의 링크처럼 static TCHAR str[2];으로 배열을 TCHAR형으로 선언해서 </div> <div>TextOut(hdc,100,100,str,lstrlen(str));으로 TCHAR형의 배열을 TextOut로 출력했었는데</div> <div>왜 이번에는 TCHAR형을 변환할수 없다고 나오는지 통 모르겠네요.</div> <div> </div> <div><a target="_blank" href="http://www.todayhumor.co.kr/board/view.php?table=programmer&no=10167&s_no=10108825&kind=member&page=1&member_kind=total&mn=502142" target="_blank">http://www.todayhumor.co.kr/board/view.php?table=programmer&no=10167&s_no=10108825&kind=member&page=1&member_kind=total&mn=502142</a></div> <div> </div> <div>그리고 제가 변경한 소스에서 어느부분인가 분명히 심각하게 잘못된 거 같은데 제 허접한 실력으로는 도저히 모르겠네요.</div> <div>아시는 분 답변 주시면 고맙겠네요.</div> <div> </div> <div><br> #include <windows.h></div> <div> </div> <div> </div> <div> LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);</div> <div>HINSTANCE g_hInst;</div> <div>LPCTSTR lpszClass=TEXT("Key");</div> <div> </div> <div> </div> <div> int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance</div> <div> ,LPSTR lpszCmdParam,int nCmdShow)</div> <div>{</div> <div> HWND hWnd;</div> <div> MSG Message;</div> <div> WNDCLASS WndClass;</div> <div> g_hInst=hInstance;</div> <div> </div> <div> </div> <div> WndClass.cbClsExtra=0;</div> <div> WndClass.cbWndExtra=0;</div> <div> WndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);</div> <div> WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);</div> <div> WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);</div> <div> WndClass.hInstance=hInstance;</div> <div> WndClass.lpfnWndProc=WndProc;</div> <div> WndClass.lpszClassName=lpszClass;</div> <div> WndClass.lpszMenuName=NULL;</div> <div> WndClass.style=CS_HREDRAW | CS_VREDRAW;</div> <div> RegisterClass(&WndClass);</div> <div> </div> <div> </div> <div> hWnd=CreateWindow(lpszClass,lpszClass,WS_OVERLAPPEDWINDOW,</div> <div> CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,</div> <div> NULL,(HMENU)NULL,hInstance,NULL);</div> <div> ShowWindow(hWnd,nCmdShow);</div> <div> </div> <div> </div> <div> while (GetMessage(&Message,NULL,0,0)) {</div> <div> TranslateMessage(&Message);</div> <div> DispatchMessage(&Message);</div> <div> }</div> <div> return (int)Message.wParam;</div> <div>}</div> <div> </div> <div> </div> <div> LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)</div> <div>{</div> <div> HDC hdc;</div> <div> PAINTSTRUCT ps;</div> <div> static int x;<br> static int y;<br> TCHAR a;<br> switch (iMessage) {<br> case WM_CHAR:<br> if((TCHAR)wParam==' ')<br> a='#';<br> <br> else<br> a='A';<br> break;<br> case WM_KEYDOWN:<br> switch(wParam)<br> {<br> case VK_LEFT:<br> x-=8;<br> break;<br> case VK_RIGHT:<br> x+=8;<br> break;<br> case VK_UP:<br> y-=8;<br> break;<br> case VK_DOWN:<br> y+=8;<br> break;<br> }<br> InvalidateRect(hWnd,NULL,TRUE);<br> break;<br> case WM_PAINT:</div> <div> hdc=BeginPaint(hWnd,&ps);</div> <div> TextOut(hdc,x,y,a,1);<br> EndPaint(hWnd,&ps);</div> <div> return 0;</div> <div> case WM_DESTROY:</div> <div> PostQuitMessage(0);</div> <div> return 0;</div> <div> }</div> <div> return(DefWindowProc(hWnd,iMessage,wParam,lParam));</div> <div>}<br></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.