В Windows есть ли способ преобразовать errno в HRESULT?
Я знаю HRESULT_FROM_WIN32
макрос для преобразования кода ошибки Win32 в HRESULT, есть ли способ сделать преобразование, начиная с errno
ошибка?
1 ответов
короче, нет.
по состоянию на http://msdn.microsoft.com/en-us/library/5814770t%28v=vs.100%29.aspx
значения errno являются константами, назначенными errno в случае различные условия ошибки.
ERRNO.H содержит определения значений errno. Однако не все определения, приведенные в ERRNO.H используются в 32-разрядной операционной системе Windows системный. Некоторые из значений в ERRNO.H присутствуют для поддержания совместимость с семейством операционных систем UNIX.
значения errno в 32-разрядной операционной системе Windows являются подмножеством значения для errno в системах XENIX. таким образом, значение errno не обязательно такой же, как фактический код ошибки, возвращаемый системой звонок из операционных систем Windows. Для доступа к фактическому код ошибки операционной системы, используйте переменную _doserrno, которая содержит это значение.
конечно, вы можете написать свой собственная функция с switch-cases, которая будет "переводить" коды ошибок.
вы можете видеть, что в windows определено около 80 значений errno.