Autor
|
Tema: obtener descripcion de ErrorCode de Winint.h (Leído 2,600 veces)
|
xkiz ™
|
bueno, estoy realizando un programita en el cual utilizo [InternetOpen, InternetOpenUrl, InternetReadFile] y algunas otras funciones de wininit.h, tengo toda la funcionalidad funcionando correctamente, bue, casi toda. En si el programa cumple su tarea muy bien, pero como es de suponerse, al programar una funcion siempre hay que preever que esta puede salir mal, por factores ajenos a lo referido a la programacion en si. en este caso, estoy intentando sacar la descripcion de Error de la funcion InternetOpenUrl que devuelve si la url no existe o similar. se que para sacar la descripcion de un error se usa, en este caso (GetLastError y FormatMessage), pero esta funcion me devuelve un valor 12007, pero en este caso los errores [12000 - 12174] tienen un apartado y la verdad es que no se como llegar a ellos. aca dejo info que encontre: System Error Codes (12000-15999)ERROR_INTERNET_* (see Wininet.h) 12000 - 12174 (0x2EE0) | Internet Error Codesen resumen, como tengo que hacer para obtener la descripcion de error[12000 - 12174], estoy re perdido a esta altura.
|
|
|
En línea
|
|
|
|
Horricreu
Wiki
Desconectado
Mensajes: 290
¡La verdad os hará libres!
|
12007 es equivalente a ERROR_INTERNET_NAME_NOT_RESOLVED. Significa que el nombre del servidor no se pudo resolver. Saludos
|
|
« Última modificación: 11 Septiembre 2010, 11:20 am por Horricreu »
|
En línea
|
|
|
|
xkiz ™
|
ok, si ya lo averigue, pero lo que yo quiero hacer es esto: void lalala(){ HINTERNET conexion, abrir; conexion = InternetOpen("", INTERNET_OPEN_TYPE_DIRECT, 0, 0, 0); if(conexion != NULL){ abrir = InternetOpenUrl(conexion, /*sUrl*/ "aaaaaaa", 0, 0, INTERNET_FLAG_RELOAD, 0); if(abrir !=NULL){ // el resto del codigo...... }else{ GetErrorKuak(); } }else{ GetErrorKuak(); } } void GetErrorKuak(){ DWORD ErrNumb; char ErrMsg[200]; char ErrMsg2[10]; ErrNumb = GetLastError(); FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,0,ErrNumb, LANG_NEUTRAL,ErrMsg, sizeof(ErrMsg),0); sprintf(ErrMsg2, "Error: %d, %s.", ErrNumb, ErrMsg); OutputDebugString((LPCTSTR)ErrMsg2); }
y que en OutputDebugString me diga la descripcion del error, no quiero llenar String Tables con todos los errores posibles....
|
|
« Última modificación: 11 Septiembre 2010, 11:49 am por xkiz »
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.937
Israel nunca torturó niños, ni lo volverá a hacer.
|
La cadena esta en la DLL que implementa esa API, tomando tu codigo: FormatMessage(FORMAT_MESSAGE_FROM_HMODULE, GetModuleHandle("wininet.dll"), ErrNumb, LANG_NEUTRAL, ErrMsg, sizeof(ErrMsg), 0);
PD. ErrMsg2 deberia ser mas grande, por logica siempre mas grande que ErrMsg.
|
|
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
xkiz ™
|
perecto, muchas gracias....
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.937
Israel nunca torturó niños, ni lo volverá a hacer.
|
De nadas
|
|
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
|
|