실수 타입은 유니코드 문자열로 만들 수 없으므로 멀티 바이트 문자열로 만들어줘야 하는데 그때 사용할 수 있는 함수가 sprintf_s 함수이다.
오버로드된 다른 형태도 있다. 나의 경우 이렇게 사용해줬다.
char FPSText[32] = {};
// 2번째 인자를 멀티 바이트 문자열 형태로 1번째 인자에 저장해준다
// GetFPS() 함수는 float타입을 리턴하는 함수
sprintf_s(FPSText, "FPS : %.5f", m_Timer->GetFPS());
다른 타입들(ex. 정수형) 들은 wsprintf 함수로 유니코드 문자열로 만들어줄 수 있다.
TCHAR BulletCountText[32] = {};
// 두번째 인자로 첫번째 인자에 유니코드 문자열을 만들어주는 함수
wsprintf(BulletCountText, TEXT("BulletCount : %d"), (int)m_BulletList.size());
참고로 TCHAR는 유니코드가 정의된 경우 wchar_t로 치환, 아니면 char로 치환되므로 generic하게 프로그래밍 하는데 도움이 될 것 같다.
'공부 > WINAPI' 카테고리의 다른 글
인코딩 변환 함수(MultiByteToWideChar(), WideCharToMultiByte()) (0) | 2021.12.10 |
---|---|
lstrlen (0) | 2021.10.01 |
WINAPI 빌드 시 "LNK1120 : 확인할 수 없는 외부 기호라는 링크 에러" 발생 시 해결 방법 (0) | 2021.08.19 |
WINAPI 시작을 위한 필수 함수들 (0) | 2021.08.03 |
WINAPI 시작하기 - 초기 세팅 (0) | 2021.08.02 |