Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-02-2016
Jota69 Jota69 is offline
Registrado
NULL
 
Registrado: ene 2016
Posts: 3
Poder: 0
Jota69 Va por buen camino
Question WinSock - INADDR_NONE ¿Cómo cambiar signo al valor?

Buenas con todos.
Actualmente me encuentro trabajando con sockets utilizando la API de windows. En la siguiente comparación:
Código:
if Result.S_addr = INADDR_NONE then
  begin
    // codigo;
  end;
En Result.S_addr tengo un valor que es -1 y la compara con la constante INADDR_NONE que en la api de windows equivale a: DWORD($FFFFFFFF) que en decimal es igual a 4294967295 por lo tanto esa sentencia siempre va a dar como resultado False y nunca va a entrar en el IF.
Como puedo hacer para que se tome con signo a la constante INADDR_NONE?

Muchas gracias por su ayuda.

PD: Estoy usando RAD studio 10.
Responder Con Cita
  #2  
Antiguo 16-02-2016
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Puedes usar operadores de bit. Por ejemplo:
Código Delphi [-]
IF (RESULT.S_addr XOR INADDR_NONE) = 0 THEN
BEGIN
  { Código; }
END;

No lo he comprobado, pero la idea es esa.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #3  
Antiguo 17-02-2016
Jota69 Jota69 is offline
Registrado
NULL
 
Registrado: ene 2016
Posts: 3
Poder: 0
Jota69 Va por buen camino
Pues la verdad lo he resuelto asi:
Código:
if Result.S_addr = u_long(INADDR_NONE) then
begin
   ...
end;
Pasa que S_addr es declarado como u_long (en WinSock), pero u_long esta definido como 'signed' Longint en lugar de 'unsigned' Longword. Entonces la solucion es hacer un cast.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿ Como cambiar el valor de AUTO_INCREMENT en MySQL ? jose.ignacio.ve MySQL 3 07-10-2014 21:37:43
¿BCB6 Como Cambiar valor Variable que esta en otra unit? JXJ C++ Builder 3 03-10-2013 01:17:36
como cambiar un valor true por un caracter janexa Impresión 7 16-01-2008 23:29:26
Cambiar Signo en Interbase Pablo_L Firebird e Interbase 2 15-09-2004 14:16:10
¿Como cambiar el color de letra dependiendo del valor de una BD? Raisen Impresión 2 26-07-2004 14:03:04


La franja horaria es GMT +2. Ahora son las 17:36:03.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi