Foros del Web » Programación para mayores de 30 ;) » C/C++ »

htons / ntohs y C++

Estas en el tema de htons / ntohs y C++ en el foro de C/C++ en Foros del Web. Hola Estoy realizando mi primer programa con C++ utilizando para ello el Visual Studio .NET (aunque el programa es bajo win32). Para ello necesito pasar ...
  #1 (permalink)  
Antiguo 13/06/2006, 02:51
Avatar de javimartinez  
Fecha de Ingreso: marzo-2003
Ubicación: Leganés (Madrid)
Mensajes: 284
Antigüedad: 21 años, 9 meses
Puntos: 1
Pregunta htons / ntohs y C++

Hola

Estoy realizando mi primer programa con C++ utilizando para ello el Visual Studio .NET (aunque el programa es bajo win32). Para ello necesito pasar números de little-endian a big-endian y viceversa, queriendo utilizar para ello las funciones htons y ntohs, es decir, las que he utilizado siempre en C.

El problema viene en que al compilar no consigo que me reconozca esas funciones, ya que no es capaz de encontrar el #include <arpa/inet.h> . Por ello, mi duda es: ¿existen esas funciones para C++? ¿existe alguna forma de pasar de little-endian a big-endian? ¿hay que hacerlo a mano?

Gracias y un saludo
__________________
Javi Martínez

Web: Acertijolandia Blog: A Entretenerse

Última edición por javimartinez; 13/06/2006 a las 03:20
  #2 (permalink)  
Antiguo 13/06/2006, 03:15
Avatar de javimartinez  
Fecha de Ingreso: marzo-2003
Ubicación: Leganés (Madrid)
Mensajes: 284
Antigüedad: 21 años, 9 meses
Puntos: 1
Bueno, parece que ya encontré el .h en el que se encuentran para windows, es el winsock2.h. Sin embargo, si hago ese include y pongo el siguiente código:

Código:
            unsigned short numShort;

	numShort = 33;
	numShort = htons(numShort);
	numShort = ntohs(numShort);
El problema es que cada vez que hago el htons o ntohs me da el siguiente error:

"PruebasEmpaquetar error LNK2019: unresolved external symbol __imp__ntohs@4 referenced in function _WinMain@16"

Sin embargo, al escribir el código el propio VS.Net me dice que parametros tiene la función, es decir, sabe que existe.

¿A qué puede ser debido?
__________________
Javi Martínez

Web: Acertijolandia Blog: A Entretenerse
  #3 (permalink)  
Antiguo 13/06/2006, 03:43
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años, 8 meses
Puntos: 2
no se de esa funcion, pero supongo que el error es por que no linkas tu programa con la libreria que contiene esa funcion( archivo.lib), y la verdad no se que libreria sea, probablemente sea winsock.lib o winsock32.lib, etc.
  #4 (permalink)  
Antiguo 13/06/2006, 05:53
Avatar de javimartinez  
Fecha de Ingreso: marzo-2003
Ubicación: Leganés (Madrid)
Mensajes: 284
Antigüedad: 21 años, 9 meses
Puntos: 1
Gracias Nivel7, pues si que era eso. Lo curioso es que otras librerías igual de usuales las linka por defecto y la de los socket no, y de ahí q otras llamadas me funcionasen y me lié.

Saludos :)
__________________
Javi Martínez

Web: Acertijolandia Blog: A Entretenerse
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:11.