C/Visual C - Programacion bajo Windows

 
Vista:

Programacion bajo Windows

Publicado por velo (4 intervenciones) el 20/01/2005 16:29:43
Hola a todo el mundo.

Me encuentro programando una sencilla aplicación Windows, nada del otro mundo, pero aunque el codigo esta bien, el programa no se puede ejecutar ya que me da dos errores de "linkaje", que son los siguientes:

libcd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/Project.exe : fatal error LNK1120: 1 unresolved externals

Debo añadir alguna libreria al proyecto??En caso afirmativo, Cual/Cuales?

Gracias por adelantado

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Programacion bajo Windows

Publicado por Ferenck (2 intervenciones) el 20/01/2005 23:46:47
No se si es el caso, pero si estas utilizando clases, ese error ocurre cuando declaras un constructor sin ningun codigo y no colocas los corchetes al final, asi:
constructor() { };
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Programacion bajo Windows

Publicado por El Mogur (202 intervenciones) el 22/01/2005 11:00:27
En ese proyecto, lo que no encuentra es la función main que tiene que tener todo proyecto en C/C++.

¿Estás haciendo un programa de consola? ¿Para Windows?

Los fallos de no encontrar el main pueden ocurrir cuando has utilizado un "Wizard" para crear una aplicación de consola (con main), y lo que quieres es hacer una para Windows, que no tiene main; si lo qiutas y lo sustituyes por WinMain, no linka/enlaza/vincula.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Programacion bajo Windows

Publicado por Velo (4 intervenciones) el 22/01/2005 14:26:18
Gracias por vuestras respuestas, aunque no consigo sacar nada claro. Evidentemente la aplicacion no tiene main ya que es una aplicacion Winsows por lo que utiliza WinMain como bien dices, no he utilizado ningun \"wizard\" (ni siquiera estoy seguro de saber lo que es) pero la aplicacion sigue sin funcionar, si me pudieran dar algun detallito mas estaria muy agradecido
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Programacion bajo Windows

Publicado por fernando.gomez (1603 intervenciones) el 24/01/2005 22:15:51
Primero, sería interesante saber qué compilador tienes. Asumo que empleas MSVC6 (probablemente es este el que empleas, por el tipo de mensaje que te genera al linkear).

El problema es que tu código tiene una función WinMain cuando estás intentando compilar con el switch:
/D "_CONSOLE"

Es decir, uno de los parámetros que le pasas al compilador es /D "CONSOLE". MSVC6 distingue entre aplicaciones. Es muy diferente crear una aplicación de consola (/D "CONSOLE") que una para Windows (/D "_WINDOWS") que una librería de enlace dinámico (/D "_WINDOWS" /D "_USRDLL").

En palabras más sencillas, si creas un proyecto de consola, pones un main para la consola. Si creas un proyecto para Windows, pones un WinMain; y si es una DLL, pones un DllMain. Y viceversa: si pones una función WinMain, tiene que ser para un proyecto para Windows.

El entorno de desarrollo te genera automáticamente los parámetros a pasarle al compilador (los switch's /D) que son los descritos anteriormente. Entonces, o bien creas otro proyecto y le especificas que es para Windows (no para consola) o en las propiedades de tu proyecto cambias el switch /D "CONSOLE" por /D "_WINDOWS".

Saludos,
Fernando Gómez.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Programacion bajo Windows

Publicado por Velo (4 intervenciones) el 25/01/2005 20:50:22
Muchas gracias a todos por vuestras respuestas, por fin solucioné el problema, aunque fuese bastante elemental...El problema es que simpre he creado aplicaciones de consola por lo que le di a Win32 Console Application sin pensarlo dos veces. Gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar