Conozco la macro HRESULT_FROM_WIN32
para convertir un código de error Win32 en HRESULT, ¿hay alguna manera de hacer la conversión a partir de un error errno
?En Windows, ¿hay alguna forma de convertir un errno en un HRESULT?
Respuesta
En resumen, no.
Como de http://msdn.microsoft.com/en-us/library/5814770t%28v=vs.100%29.aspx
Los valores errno son constantes asignados al errno en caso de diversas condiciones de error.
ERRNO.H contiene las definiciones de los valores errno. Sin embargo, no todas las definiciones dadas en ERRNO.H se usan en Windows de 32 bits que opera con los sistemas . Algunos de los valores en ERRNO.H están presentes para mantener la compatibilidad con con la familia de sistemas operativos UNIX.
Los valores de errno en un sistema operativo Windows de 32 bits son un subconjunto de los valores de errno en los sistemas XENIX. Por lo tanto, el valor de errno no es necesariamente el mismo que el código de error real devuelto por una llamada al sistema desde los sistemas operativos de Windows. Para acceder al código de error del sistema operativo real, use la variable _doserrno, que contiene este valor.
Por supuesto, puede escribir su propia función con interruptores que "traducen" códigos de error.
Puede ver que hay unos 80 valores de errno definidos en Windows.
- 1. ¿Cómo puedo (¿hay alguna manera de) convertir un HRESULT en un mensaje de error específico del sistema?
- 2. ¿Hay alguna forma de convertir automáticamente un script de Greasemonkey en un bookmarklet?
- 3. ¿Hay alguna forma de simular eventos táctiles en Windows 8
- 4. ¿Hay alguna forma de convertir json a xml en PHP?
- 5. ¿Hay alguna manera de usar errno de forma segura en una aplicación de subprocesos múltiples?
- 6. ¿Hay alguna forma de multirreproducir un SqlDataReader?
- 7. ¿Hay alguna forma de obtener un tiempo de época usando un comando de Windows?
- 8. ¿Hay alguna forma de bloquear un proceso en una CPU?
- 9. ¿Hay alguna forma de detectar un lenguaje RTL en Java?
- 10. ¿Hay alguna forma de crear múltiples activadores en un script?
- 11. ¿Hay alguna forma de generar un guid en ANT?
- 12. ¿Hay alguna forma de controlar los cambios en un objeto?
- 13. En Perl, ¿hay alguna forma de atar un alijo?
- 14. ¿Hay alguna forma de insertar un navegador en Java?
- 15. ¿Hay alguna forma de memorizar un valor en Haskell?
- 16. ¿Hay alguna forma de insertar un espacio en modo normal?
- 17. ¿Hay alguna forma de anclar un ancla en css?
- 18. ¿Hay alguna forma de agregar un número par de dígitos?
- 19. ¿hay alguna forma en java para crear un esquema xsd?
- 20. ¿Hay alguna forma de automatizar las pruebas de Windows Forms?
- 21. ¿Hay alguna forma de convertir fácilmente una serie de archivos tar de un árbol fuente en un repositorio git?
- 22. ¿Hay alguna forma de leer programáticamente un archivo de un disco TrueCrypt en la memoria?
- 23. ¿Hay un equivalente de Make en Windows?
- 24. ¿Hay alguna forma de currying en C?
- 25. ¿Hay alguna forma de sobrecargar + = en python?
- 26. ¿Hay alguna forma de convertir un diccionario a String a mano?
- 27. ¿Hay alguna forma de detectar un software de registro clave?
- 28. ¿Hay alguna forma de comentar un gran fragmento de código?
- 29. ¿hay alguna forma de forzar la copia? copiar sin un mensaje de sobrescritura, usando Windows?
- 30. ¿Existe alguna forma más rápida de convertir un número en un nombre?
Entonces, al menos para los valores que emitirá Windows, puede obtener el código de error del sistema simplemente marcando '_doserrno', y podría obtener un HRESULT usando' HRESULT_FROM_WIN32 (_doserrno) '? Excelente. – CBHacking