obtener descripcion de ErrorCode de Winint.h

Iniciado por xkiz ™, 11 Septiembre 2010, 10:40 AM

0 Miembros y 1 Visitante están viendo este tema.

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 Codes

en resumen, como tengo que hacer para obtener la descripcion de error[12000 - 12174], estoy re perdido a esta altura.

Horricreu

#1
12007 es equivalente a ERROR_INTERNET_NAME_NOT_RESOLVED. Significa que el nombre del servidor no se pudo resolver.

Saludos :P

xkiz ™

#2
ok, si ya lo averigue, pero lo que yo quiero hacer es esto:

Código (cpp) [Seleccionar]

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....

Eternal Idol

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.
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 ™


Eternal Idol

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