이 자동으로 오류 설명을 검색, how to throw 보통의 Win32 오류를 올바르게이며, 놀랍게 잘 작동 :FAILED (HRESULT)에서 std :: system_error 예외를 throw하는 방법은 무엇입니까?
if (!SomeWinFunc()) {
throw std::system_error(GetLastError(),
std::system_category(),
"SomeWinFunc crashed badly");
}
그러나
, 나는이 같은 idiomatically을 체크 COM 오류에 대처하는 방법에 대한 불확실 해요 :
HRESULT hr = comObj->SomeFunc();
if (FAILED(hr)) {
throw std::system_error(hr, // <-- is it correct here?
std::system_category(),
"SomeFunc crashed right now");
}
는 HRESULT
system_error
에 통과 정확, 또는 COM 기능에서 예외를 던질 수있는 또 다른 방법은 무엇입니까?
어디서 났습니까? –
@MichaelGunter, 100 % 올바른 솔루션 (코드로 시작할 수도 있음)을 아직 구현하지 못했지만, 시스템 요구 사항을 처리하기 위해 필요한 COM 코드를 사용하기 때문에 몇 가지 테스트를 수행했습니다. 나는 시간을 알 자마자 이것에 대해 더 깊은 곳으로 갈 계획이다. – Rodrigo