제 목 (22강 키 입력, 도트 그래픽) 오류 수정 에러 문의
작성자 스턴보이 등록날짜 2023-09-09 12:17:45 / 조회수 : 12
강좌명 [패키지] 개발자 기본과정
첨부파일
  • 안녕하세요 

    22강 키 입력, 도트 그래픽  강좌에서 하기 str 문자 코드 관련 에러를 수정 하는데 있어

    프로젝트 속성 > 문자집합 > "멀티바이트 문자 집합 사용" 으로 변경하는 방법으로 하였지만 

    아직도 코드가 실행되지 않고, 아래와 같이 에러코드가 뜹니다. 

    코드는 동일하게 하였습니다. 첨부파일로 프로젝트 파일도 같이 공유 드립니다. 

    피드백 부탁 드립니다. 

    (참고로, chatgpt 또는 기타 리서치를 통해서도 확인해 봣지만... 해결되지는 않았습니다.)

     

  • 작성자 : 게임클래스 / 등록날짜 : 2023-09-13 18:49:18
    • 안녕하세요 게임클래스 입니다.

      해당 질문에 대해 담당 교수님께 답변을 요청드린 상태 입니다.

      교수님께서 답변 주시면 바로 답변후 문자메시지를 통해 답변완료 안내 드리도록 하겠습니

    • --------------------------------------------------------------------------------------------------

    교수님 답변입니다.

    WriteConsoleOutputCharacter 함수를 WriteConsoleOutputCharacterA 로 고치면 간단하게 해결이 가능합니다.

    문자열의 경우 

    원래 호출이 안되던 함수는 매크로함수로 1바이트, 2바이트 일때

    자동으로 WriteConsoleOutputCharacterA 또는 WriteConsoleOutputCharacterW로 스위치 되서 호출될수 있게 되어있는 제너릭매핑이 되어 있습니다. 제너릭매핑이 되어있는 함수는 스위치 값이 Define(상수)로 되어 있기때문에 문자집합을 유니코드에서 멀티바이트변경해 줘야한 자동으로 스위칭이 가능합니다.

    ** 제너릭 맵핑 : A, W를 경우에따라 스위치되게 하는 방식. 보라색 함수들이 이에 해당함.

    코드를 고치지 않고 함수 실행이 되게 고치려면 프로젝트 속성-고급- 문자집합을 유니코드에서 멀티바이트로 고쳐도 해결이되고
    아니면 1바이트 문자열함수임 끝에 A 가 붙은 함수로 고쳐도 해결할 수 있습니다.

    str의 문자열의 경우 1바이트 문자열 이기 때문에 A를 붙여 해결이 가능합니다.

댓글 1개
  • 스턴보이 [ 2023-09-16 17:43:40 ]
  • 잘 처리 되었습니다. 감사합니다.