«Лучший способ» - использовать приведение в стиле C ++:
HRESULT hr = DoSomething();
return static_cast<int>(hr);
В противном случае, как сказал Стив , это просто целое число. Он определяется как long
, а не int
, но вместо приведения от HRESULT
к long
до int
вы, очевидно, можете просто сделать это за один маневр.
(То есть windows.h
предполагает, что long
будет 32-разрядным целым числом, что не гарантируется стандартом C & C ++. Но я полагаю, что так и происходит).
Еще лучше то, что для этого вообще не требуется приведение.