Language
한국어
프로그래밍 관련 질문 사항을 올려주세요. 도움을 받기 위해서는 최대한 질문을 상세하게 작성하고 도움을 준 분께는 감사의 표시를 합시다.
  • Win32 API 초급강좌 중 First.cpp 파일에 대한 에러 질문.
  • 조회 수: 406, 2017-07-20 14:32:22(2017-07-20)
  • First.cpp 초급강좌  첫 예제 항목에서  컴파일 하니 에러가 있어서 질문드립니다. (비쥬얼 스튜디오 2010 버전)

    -------------------------------------------

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

    --------------------------------------------------------------------------------------------------------------


    1>------ 빌드 시작: 프로젝트: ApiPrj, 구성: Debug Win32 ------
    1>빌드 시작: 2017-07-20 오전 10:06:57
    1>InitializeBuildStatus:
    1>  "Debug\ApiPrj.unsuccessfulbuild"에 연결(touching)하고 있습니다.
    1>ClCompile:
    1>  First.cpp
    1>c:\users\administrator\desktop\text\apiprj\apiprj\first.cpp(22): error C2440: '=' : 'LPSTR'에서 'LPCWSTR'(으)로 변환할 수 없습니다.
    1>          가리킨 형식이 관련이 없습니다. 변환하려면 reinterpret_cast, C 스타일 캐스트 또는 함수 스타일 캐스트가 필요합니다.
    1>c:\users\administrator\desktop\text\apiprj\apiprj\first.cpp(29): error C2664: 'CreateWindowExW' : 매개 변수 2을(를) 'LPSTR'에서 'LPCWSTR'(으)로 변환할 수 없습니다.
    1>          가리킨 형식이 관련이 없습니다. 변환하려면 reinterpret_cast, C 스타일 캐스트 또는 함수 스타일 캐스트가 필요합니다.
    1>
    1>빌드하지 못했습니다.
    1>
    1>경과 시간: 00:00:00.85
    ========== 빌드: 성공 0, 실패 1, 최신 0, 생략 0 ==========


    위의 내용을 어떻게 수정해야 하나요???

댓글 1

  • phil

    2017.07.20 14:32

    위에서 4번째 줄 : LPSTR lpszClass="First"; ----> const wchar_t* lpszClass = L"First"; 이렇게 하면 될 것입니다.
    그리고 유니코드에 대해서 검색해 보세요.
현재 게시판 기능 테스트중입니다. 디자인이나 게시판 구성은 언제든지 예고없이 변경될 수 있습니다.