Format을 왜 해야 할까
winapi나 다른 운영체제의 api를 사용하다 보면 애러가 날 때 애러 메시지가 아니라 에러코드를 리턴한다. 따라서 이 애러가 무슨 애러인지 알기 위해서는 구글링으로 애러코드를 검색해야 한다.
애러코드를 메시지로
구글링으로 메시지를 알아내도 되지만 매번 검색하기는 귀찮다는 문제가 있다.
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
errCode, /* 애러 코드 */
0,
(LPTSTR)&errorMessage, /* 애러 메세지 */
0,
NULL);
winapi에서는 애러코드를 메시지로 변환해 주는 FormatMessage라는 함수가 있다. 하지만 이 함수를 호출하기 위해서는 복잡한 인수가 들어간다. 또 크로스플랫폼을 개발하기 위해 또 그 os에서의 애러코드 변환 코드를 작성해줘야 한다.
이를 개선하기 위해서는 C++ 표준에 있는 운영체제 애러코드를 메시지로 변환해 주는 함수를 사용하면 된다.
auto errorMessage = std::system_category().message(errCode);
'C++' 카테고리의 다른 글
[C++] vcpkg 라이브러리 패키징 (0) | 2024.08.07 |
---|---|
[C++] 제대로 알고 사용하자. atd::async (0) | 2024.07.13 |
[C++] C++에서 라이브러리를 관리해보자 (0) | 2024.06.27 |
[C++/Unreal] 커스텀 RPC 구현 기록 (0) | 2024.05.31 |
[C++] 클래스 멤버 메소드를 함수포인터, std::function 객체로 변환하기 (0) | 2023.11.06 |