 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
JesúsGandia Master


Registrado: 17 Jul 2004Mensajes: 403Ubicación: Gandia, Valencia
|
Publicado: Vie 19 Feb, 2010 2:35 am Asunto: Error Ping en Compilacion |
|
|
Este codigo me dá error cuando compilo, diciendome que el programa ha dejado de funcionar. Ejecuto la compilacion sobre Windows 7 64bits y builder 2010, pero en ejecución el programa funciona perfectamente.
| Código: |
#pragma hdrstop
#include <memory>
#include <ScktComp>
#include <winsock2>
#include <iphlpapi>
#include <icmpapi>
#include "Ping.h"
bool Ping(void)
{
//Declarar e inicializar variables
char IP[] = "216.239.59.104";
bool Result = true;
HANDLE hIcmpFile;
unsigned long ipaddr = INADDR_NONE;
DWORD dwRetVal = 0;
char SendData[] = "Data Buffer";
LPVOID ReplyBuffer = NULL;
DWORD ReplySize = 0;
//Obtener IP
ipaddr = inet_addr(IP);
if(ipaddr == INADDR_NONE)
return false;
hIcmpFile = IcmpCreateFile();
if(hIcmpFile == INVALID_HANDLE_VALUE)
return false;
ReplySize = sizeof(ICMP_ECHO_REPLY) + sizeof(SendData);
ReplyBuffer = (VOID*) malloc(ReplySize);
if(ReplyBuffer == NULL)
return false; // No localizacion de memoria...
// Envia Ping
dwRetVal = IcmpSendEcho(hIcmpFile, ipaddr, SendData, sizeof(SendData),NULL, ReplyBuffer, ReplySize, 1000);
if(dwRetVal != 0)
{
PICMP_ECHO_REPLY pEchoReply = (PICMP_ECHO_REPLY)ReplyBuffer;
// Detectar Error en Ping (IP_STATUS)
// ICMP_ECHO_REPLY Structure IP_STATUS code
// http://msdn2.microsoft.com/en-us/library/aa366053(VS.85).aspx
if(pEchoReply->Status != 0)
Result = false; // Error en Ping el Host no lo recibe....
}
else
Result = false;
free(ReplyBuffer);
if(!Result)
{
if(IPInternet() == "Venta Equipos tactiles") //Compruebo que está escrito en la pagina Web de visual-systems.es
Result = true;
else
Result = false;
}
return Result;
}
//---------------------------------------------------------------------------
String IPInternet(void)
{
std::auto_ptr<TClientSocket> socket(new TClientSocket(0));
socket->Host = "www.visual-systems.es";
socket->ClientType = ctBlocking;
socket->Port = 80;
try
{
socket->Open();
char buffer[1024] = "GET http://www.visual-systems.es HTTP/1.0\n\n";
socket->Socket->SendText(buffer);
socket->Socket->ReceiveBuf(buffer, sizeof(buffer));
String html = buffer;
html = html.SubString(html.Pos("<title>"),29); //Capturo 29 caracteres incluido la etiqueta
return html.Delete(1, 7); // 7 caracteres que son: "<title>" del codigo fuente de mi pagina Web. Y RETORNO "Venta Equipos tactiles"
}
catch (...)
{
return "";
}
}
//---------------------------------------------------------------------------
|
Esta es la linea en la que el programa se bloquea cuando compilo:
| Código: |
dwRetVal = IcmpSendEcho(hIcmpFile, ipaddr, SendData, sizeof(SendData),NULL, ReplyBuffer, ReplySize, 1000); |
Alguien sabe donde está el error, antes con el builder 2007 no me daba este error. _________________ Muchos hombres no se equivocan jamás porque no se proponen nada razonable. |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Vie 19 Feb, 2010 3:18 am Asunto: |
|
|
| Que error te da ? a mi me compila y ejecuta correctamente (misma versión de Windows y de C++Builder). |
|
| Volver arriba |
|
 |
JesúsGandia Master


Registrado: 17 Jul 2004Mensajes: 403Ubicación: Gandia, Valencia
|
Publicado: Vie 19 Feb, 2010 3:54 am Asunto: |
|
|
Perdona _Leo, aveces el Builder se me queda colgado en la Linea mencionada y a veces NO. No me dá ningún error de Compilación sino que el Builder se cuelga y me sale el tipico mensaje de Windows 7 "Este programa a dejado de funcionar" que quiere hacer "Cerrar o Depurar".
Yo le digo que cerrar y enseguida se termina la compilación y me devuelde al IDE del Builder sin mas. _________________ Muchos hombres no se equivocan jamás porque no se proponen nada razonable. |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Vie 19 Feb, 2010 4:32 am Asunto: |
|
|
| He probado a compilarlo varias veces, abriéndolo y cerrándolo, etc.. y ninguna de las veces me ha fallado. Asegúrate de tener todas las actualizaciones instaladas por si acaso.. |
|
| Volver arriba |
|
 |
JesúsGandia Master


Registrado: 17 Jul 2004Mensajes: 403Ubicación: Gandia, Valencia
|
Publicado: Vie 19 Feb, 2010 1:21 pm Asunto: |
|
|
gracias por tus pruebas Leo, he descuvierto que el error me daba después de que me saltase una excepción de momoria en otro bloque del código. Gracias. _________________ Muchos hombres no se equivocan jamás porque no se proponen nada razonable. |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|