본문 바로가기

IT 서비스 바라보기/Desktop PC

'LPSTR'에서 'LPCWSTR'(으)로 변환할 수 없습니다.



Win32 Api 사이트 강좌를 보던 중 첫 강좌 부터 문제점이 생겨서 어떻게 해야 하는지 오락가락 하다가 검색해서 문제점을 찾아서 포스팅 합니다. ^^

# 문제가 생긴 소스

#include <windows.h>

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
HINSTANCE g_hInst;
LPSTR lpszClass="First";

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)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,0,0,0)) {
TranslateMessage(&Message);
DispatchMessage(&Message);
}
return Message.wParam;
}

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));
}

굵게 칠한 부분에서 " 'LPSTR'에서 'LPCWSTR'(으)로 변환할 수 없습니다." 라는 오류 메세지가 나면서 컴파일이 되지 않았는데 이 문제는 프로젝트 속성에서 일반 속성에 있는 문자 집합 속성을 멀티바이트 문자 집합 사용 으로 변경 해주고 나니 바로 해결이 됐습니다. ^^

사용자 삽입 이미지