Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Sacar La Ip Propia

Iniciado por _Grey, 04 de Septiembre de 2003, 09:32:38 PM

« anterior - próximo »

BeRSeRKeR

Cita de: "shephiroth"Buenas. Solo comentar que el codigo anterior me da problemas de unresolved symbols......faltará incluir algo??? Lo he probado en visual c++.net y en visual c++ 6.0

SALUDOS ^_^
Tal vez te falte enlazar la librería WSock32.lib.

Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

shephiroth

 Buenas. Me sigue dando problemas de linkeo. LA pantalla que me sale es la siguiente:

--------------------Configuration: asd - Win32 Debug--------------------
Linking...
asd.obj : error LNK2001: unresolved external symbol __imp__WSAIoctl@36
asd.obj : error LNK2001: unresolved external symbol __imp__WSASocketA@24
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/asd.exe : fatal error LNK1120: 3 unresolved externals
Error executing link.exe.

asd.exe - 4 error(s), 0 warning(s)


En las propiedades del proyecto veo que tiene listadas las siguientes librerias:

WSock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib

Alguna idea??

GRACIAS.

Juan Mellado

 Hola shephiroth,

1) Crea el proyecto como "Win32 Console Application", ya que usa main(), y no WinMain(), como punto de entrada al programa.

2) Añade la librería ws2_32.lib a la lista. Normalmente puedes ver en la ayuda de una función del API los include (.h y .lib) que necesita.

Espero te sirva,
Saludos

BeRSeRKeR

 En vez de WSock32 prueba con Ws2_32. El otro problema que tienes es que estás intentando compilar una aplicación de consola (función de entrada main) con un perfil de aplicación windows (WinMain). Así que tienes que cambiar el tipo de aplicación a tipo consola.

Saludos.

PD: vaya, se me ha adelantado Juan Mellado. :)
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

Zaelsius

 Tienes que enlazar con la libreria "Ws2_32.lib"... bueno hemos respondido tres personas a esta pregunta en un margen de minutos jajajajaj.

A ver si consultamos antes la MSDN o el Platform SDK  :rolleyes:  

shephiroth

 Buenas. Si, añadiendo la otra libreria ya funciona. Crear la aplicacion de consola no fue necesario, pues que al compilar directamente reconoce si se usa funcion main o winmain (es decir, se puede utilizar una u otra, pero solo utilizar una).

Lo unico que ahora me da siempre "Error &d en WSAIoctl" xDD pero weno, por lo menos ya rula...alguien me explica por que da, o forma de solucionarlo??

GRACIAS.

Milinko

Error mío al escribir el código.

Sustituye la línea 47 por:

fprintf(stderr, "Error %d en WSAIoctl\n", GetLastError());

Cuando vuelvas a ejecutar te debe dar un numero de error, lo puedes consultar en el MSDN y si no lo ves claro postealo.

Un saludo,

Milinko
-------------------------------------------
Milinko
"The Loneliness Of The Long Distance Runner"
--------------------------------------------

shephiroth

 Wenas. Lo primero pedir disculpas por lo ultimo, era muy tarde, estaba cansado y no me di cuenta del & en vez del %, sino lo habría cambiado directamente. Ahora al tajo xDD

Pues el número que me da de error es el 0 xDD algo aqui algo anda mal xDD

Voy al MSDN antes ha comprobarlo, que puede que exista ese error y todo............no he encontrado nada relevante........no he encontrado ni la tabla de errores, asi que algo hay por ahi xDD.

Que raro, he colocado un System::Console::WriteLine(GetLastError().ToString()); antes de que comprobase en esa posicion, y me sigue dando error pero ahora me marca el error 126. Lo dicho, en MSDN no he encontrado la tabla de errores. Alguien me puede decir q significa??


BeRSeRKeR

 ¿Seguro que sólo te dice error 126?. Normalmente te da un error tipo C1026. Y bueno, para encontrar la definición del error, lo que yo hago es en el índice de la MSDN poner el código de error. Por ejemplo el C1026.

Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

Zaelsius

Cita de: "shephiroth"
Que raro, he colocado un System::Console::WriteLine(GetLastError().ToString());
¿Si utilizas C++ administrado por qué no utilizas las clases socket de .NET directamente?






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.