Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: luis_74 en 4 Mayo 2015, 19:46 pm



Título: pequeños problemitas, usando dev c++ y visual c++
Publicado por: luis_74 en 4 Mayo 2015, 19:46 pm
1-el primer problemita es en el dev c++, que al usar las funciones que hay en los archivos.h , windows.h, iostream.h, stdio.h,  no muestras los nombres de sus  parametros , solo los tipos, como se podria hacer que si lo muestre?
es problema no me se de memoria los parametros de las funciones y peor si se trata de windows.h que tiene funciones complejas.

2-por el inconveniente anterior instale el visual stdio 6.0 que trae visual c++, este si muestras los parametros , tipos y miembros de struct, el problema es al usar getchar()  el programa no funciona bien:

Código:
#include "stdafx.h"   //quitar esto para compilar dev c++


#include <iostream.h>
#include <stdio.h>



int main(int argc, char* argv[])
{

cout <<"linea1\n";
cout<<"otra linea\n";
cout<<"\n\n\n";
cout<<"hello world\n";
getchar();
getchar();
getchar();
getchar();
cout<<"salida del programa pulsa enter\n";
getchar();
return 0;



}

si compilo este codigo en dev c++ , se realizan las sentencias en el orden correcto, la salida es:

Código:
linea1
otra linea


hello world
(hacer enter)
(hacer enter)
(hacer enter)
(hacer enter)
salida del programa pulsa enter
(hacer enter)

pero compilado en vc++ la salida es esta:

Código:
(hacer enter)
(hacer enter)
(hacer enter)
(hacer enter)
(hacer enter)
(hacer enter)
linea1
otra linea


hello world
salida del programa pulsa enter
press any key to continue


la pantalla sale vacia , los getchar se procesan todos juntos antes que cualquier otra cosa, no se respeta el orden de las sentencias y  al final se procesan las lineas de
texto.

-como se puede quitar ese "press any key to continue" del vc++ , el codigo no tiene esa sentencia, pero sigue saliendo.

-los compialdos de vc++ de la carpeta debug y release , si los abres manualmente con doble-clic, sale la pantalla negra e inmediatamente se cierra, como se arregla eso? .

-aveces en vc++ el "\n" en ves de provocar un salto de linea, provoca que sea  necesario pulsar enter para avanzar, parecido al getchar(), aunque en mis ultimos codigos parece que desaparecio ese problema, igual agradeceri si alguien me pueda explicar.




Título: Re: pequeños problemitas, usando dev c++ y visual c++
Publicado por: engel lex en 4 Mayo 2015, 20:10 pm
realmente no se por qué no corre igual en vc++ vengo a corregir errores...


estás tratando librerías de C++ como si fueran de C y estás mezclando librerías de C y C++ indiscriminadamente


Código
  1. #include "stdafx.h"   //quitar esto para compilar dev c++
  2. #include <iostream>
  3. //sin .h lsd librerías standard de c++ no lo llevan
  4. #include <cstdio>
  5. //cstdio es stdio.h para c++

donde está
Código
  1. using namespace std;

:s como te corre? (bueno, dev c++ siempre hace un desastre con el código y hace lo que quiere algunas veces, vc++ no se, pero parece que también)

recomiendo usar compiladores como mingw y cygwin, en lugar de dev c++, (solo que tienes que bajar un ide como eclipse, codeblocks o netbeans para trabajar con ellos)


Título: Re: pequeños problemitas, usando dev c++ y visual c++
Publicado por: x64core en 5 Mayo 2015, 06:25 am
:s como te corre? (bueno, dev c++ siempre hace un desastre con el código y hace lo que quiere algunas veces, vc++ no se, pero parece que también)

recomiendo usar compiladores como mingw y cygwin, en lugar de dev c++, (solo que tienes que bajar un ide como eclipse, codeblocks o netbeans para trabajar con ellos)
Triste ver estos comentarios... @engel lex, me sorprende la magnitud de tal parrafo que escribiste. Para empezar Dev C++ no es ningun compilador, es un IDE, de la pagina oficial:

Citar
Bloodshed Dev-C++ is a full-featured Integrated Development Environment (IDE) for the C/C++ programming language. It uses Mingw port of GCC (GNU Compiler Collection) as it's compiler. Dev-C++ can also be used in combination with Cygwin or any other GCC based compiler.

Sí, utiliza Mingw. Al final para engel lex todos los compiladores hacen un solo destroso XD Creo que algunas personas deberian de primero a aprender a usar algunos compiladores... en fin.

@luis_74:
Para empezar no te recomendaria usar el Dev-C++, este ya está defasado aúnque he hace tiempo ví que alguien tomo de nuevo el proyecto pero quien sabe aún así sigo viendo en muchos foros de C/C++ gente usando Dev-C++ y con problemas de compilación ridiculos. Si vas a programar en Windows el mejor compilador e IDE es Visual C++, Visual Studio.

El Visual Studio 6.0 es muy viejo, mejor instalá una version del visual studio más reciente, el Visual studio 2013 corre perfecto para mi, tambien es posible instalar solo el VC++.






Título: Re: pequeños problemitas, usando dev c++ y visual c++
Publicado por: luis_74 en 5 Mayo 2015, 23:58 pm
el problema del  vc++ 6.0 era el uso incorrecto de las librerias de C en codigo C++ como dice engel lex . olvidé considerar las diferencias de C Y C++, es que el dev c++ me lo compilaba sin errores y corria normal, el programa ya funciona normal.

pero tambien probe los otros IDEs codeblock, netbeans y eclipse, me quedo con el codeblocks :xD, no sabia que existia un ide tan practico , y con autocompletado de funciones constates y todo,  me ahorra escribir mucho, lo que quisera saber es si hay alguna forma de hacer que se muestren los nombrtes de los parametros al llamar a una funcion , todavia no se como se hace, quizas sea cambiar algun ajuste, reempalzar los archivos header?

nombres parametros mostrados en visual c++:

(http://i60.tinypic.com/2pqqtuc.jpg)


en codeblocks solo muestra los tipos de datos:

(http://i62.tinypic.com/35iaaf8.jpg)

es mas facil recordar o saber de que se trata  "LPCSTR lpfilename" en lugar de "LPCSTR" sin nada más.


Título: Re: pequeños problemitas, usando dev c++ y visual c++
Publicado por: Stakewinner00 en 6 Mayo 2015, 00:26 am
Como ya comentaron, mejor mira mingw. El compilador del microsoft genera un código algo desastroso. No se como compilaste ese programa pero si pasas algunos flags para oprimizar el código al final puede hacer desastres graves.

Si en el primer code de ejemplo cambias los "\n" por << endl también ocurre lo mismo en el caso de vc++?


Título: Re: pequeños problemitas, usando dev c++ y visual c++
Publicado por: x64core en 6 Mayo 2015, 04:14 am
luis_74, El Visual studio 2013 incluye todo eso, autocompletacion, sugerencias, identacion de espacios, etc.

@Stakewinner00:
Podes definir lo que quieres decir con código desastroso?


Título: Re: pequeños problemitas, usando dev c++ y visual c++
Publicado por: Stakewinner00 en 6 Mayo 2015, 15:30 pm
@x64Core Poco he usado el vc++, vi varios artículos y comparaciones sobre el compilador de microsoft, gcc y clang y en general solía hacer un código menos óptimo (más llamadas a funciones). Lo que genera un código desastroso me refiero a que según que flags uses te puede cambiar las cosas de lugar de forma aparentemente sin sentido como paso con el código de ejemplo, aunque en este caso aún le encuentro sentido.

Por ejemplo un compañero me comento que
Código:
return 1;
return 0;
le devolvía 0, y con un if(x) devolvía cosas raras (ya no recuerdo)  y por el estilo.


Título: Re: pequeños problemitas, usando dev c++ y visual c++
Publicado por: luis_74 en 7 Mayo 2015, 00:09 am
luis_74, El Visual studio 2013 incluye todo eso, autocompletacion, sugerencias, identacion de espacios, etc.

@Stakewinner00:
Podes definir lo que quieres decir con código desastroso?


si revisé, lo del visual studio 2013, pero dice que son como 20 gigas necesarios, descargarlo tardaria muy demasiado , solo necesito el visual c++ no toda su familia :P , ademas del i. explorer 10.
como podria descargarlo individualmente?


Título: Re: pequeños problemitas, usando dev c++ y visual c++
Publicado por: x64core en 7 Mayo 2015, 05:33 am
@x64Core Poco he usado el vc++, vi varios artículos y comparaciones sobre el compilador de microsoft, gcc y clang y en general solía hacer un código menos óptimo (más llamadas a funciones). Lo que genera un código desastroso me refiero a que según que flags uses te puede cambiar las cosas de lugar de forma aparentemente sin sentido como paso con el código de ejemplo, aunque en este caso aún le encuentro sentido.

Por ejemplo un compañero me comento que
Código:
return 1;
return 0;
le devolvía 0, y con un if(x) devolvía cosas raras (ya no recuerdo)  y por el estilo.
Acerca de la optimización seguro que sí, he visto que tipo de código genera GCC, por ejemplo he notado que no generá Stack Frame, saltos relativos como mas sea posible, tabla de saltos y asi, igual algunos de ellos se pueden lograr configurando bien al compilar con VC++ pero sí, estoy deacuerdo que generá código más optimo.

Ahora acerca del código desastroso te puedo decir que programar un compilador no es sencillo por más simple que se intente, require meses o años de vida humano para un solo programador mas si es no se tiene experiencia... dudo que un compilador como VC++ generé errores en cosas tan simples, tampoco digo que no tendria absolutamente ningun error pero bueno.

si revisé, lo del visual studio 2013, pero dice que son como 20 gigas necesarios, descargarlo tardaria muy demasiado , solo necesito el visual c++ no toda su familia :P , ademas del i. explorer 10.
como podria descargarlo individualmente?
Realmente se necesitan como 2 o 4 en descarga para la version Professional o Ultimate que incluye C#, NET, desarrollo de web y muchisimas otras herramientas, en espacio de disco duro seguro son como 20GB si instalas todas las herramientas que mencione. es tipico de Microsoft en paquetes incluyen un monton de herramientas, igual a la hora de instalar se puede desmarcar todas las opciones y solo instalar Visual Studio con VC++ son como ~1-1.5GB. Tambien esta la version Express.


Título: Re: pequeños problemitas, usando dev c++ y visual c++
Publicado por: luis_74 en 9 Mayo 2015, 19:43 pm
Acerca de la optimización seguro que sí, he visto que tipo de código genera GCC, por ejemplo he notado que no generá Stack Frame, saltos relativos como mas sea posible, tabla de saltos y asi, igual algunos de ellos se pueden lograr configurando bien al compilar con VC++ pero sí, estoy deacuerdo que generá código más optimo.

Ahora acerca del código desastroso te puedo decir que programar un compilador no es sencillo por más simple que se intente, require meses o años de vida humano para un solo programador mas si es no se tiene experiencia... dudo que un compilador como VC++ generé errores en cosas tan simples, tampoco digo que no tendria absolutamente ningun error pero bueno.
Realmente se necesitan como 2 o 4 en descarga para la version Professional o Ultimate que incluye C#, NET, desarrollo de web y muchisimas otras herramientas, en espacio de disco duro seguro son como 20GB si instalas todas las herramientas que mencione. es tipico de Microsoft en paquetes incluyen un monton de herramientas, igual a la hora de instalar se puede desmarcar todas las opciones y solo instalar Visual Studio con VC++ son como ~1-1.5GB. Tambien esta la version Express.





x64Core

instale el vstudio 2013 en un windows 7, y funciona todo correcto, ya compile mis primeros programitas y los abri , funcionan todo correcto.

 pero hay un problema que si los abro en windows xp, salta el mensaje "c:\ejemplo.exe no es una aplicacion valida" , revisé la configuracion del vstudio y en plataforma dice: 32bits, modo: debug , probe cambiando al modo: release , cambie tambien en framework: 4.5.1 , 3.0, 2.0 y etc,  pero el igual sigue sin funcionar en winxp.

q debo hacer si quiero que se funcionen en todos los windows?

los programas que habia compilado antes con dev c++ y  visual c++ 6.0  funcionan sin .problemas en win7 y win xp,


Título: Re: pequeños problemitas, usando dev c++ y visual c++
Publicado por: x64core en 10 Mayo 2015, 04:43 am



x64Core

instale el vstudio 2013 en un windows 7, y funciona todo correcto, ya compile mis primeros programitas y los abri , funcionan todo correcto.

 pero hay un problema que si los abro en windows xp, salta el mensaje "c:\ejemplo.exe no es una aplicacion valida" , revisé la configuracion del vstudio y en plataforma dice: 32bits, modo: debug , probe cambiando al modo: release , cambie tambien en framework: 4.5.1 , 3.0, 2.0 y etc,  pero el igual sigue sin funcionar en winxp.

q debo hacer si quiero que se funcionen en todos los windows?

los programas que habia compilado antes con dev c++ y  visual c++ 6.0  funcionan sin .problemas en win7 y win xp,
Espero que hayas descargado del sitio oficial: https://www.visualstudio.com/downloads/ o una version actualizada, ese problema es viejo se resolvio en la actualizacion 2. Ahora, si es una version actualizada o ya has descargado de nuevo el VS actualizado e instalado entonces en propiedades del proyecto -> general -> Plataforma: aparecera un menu similar o igual:
(http://s4.postimg.org/ihhbcqfil/image.png)
Seleccionas Visual Studio 2013 - Windows XP, con eso las aplicaciones funcionarán desde Windows XP hasta la ultima version, el VS usará las cabeceras y librerias correctas para que los programas funcionen desde esa version.

Otra manera seria establecer el valor correcto en las cabeceras de la imagen PE, debe ser 5.1 ya que es la version que coresponde a Windows XP: (http://s28.postimg.org/9g14fis7h/image.png)
Pero de esta manera debes de ser cuidadoso no usando funciones/simbolos que esten disponibles solo desde Windows Vista o superior.


Título: Re: pequeños problemitas, usando dev c++ y visual c++
Publicado por: x64core en 10 Mayo 2015, 05:08 am
Por si acaso, otro problema que veo entre la gente nueva usando las nuevas versiones de VS es el del modulo MSVCR<XXX>.dll. Debes de saber que al compilar de forma dinamica tu programa dependerá del modulo en donde se encuentren las funciones, para Visual studio 2013 ese modulo no estará instalado en viejas versiones de Windows ( en realidad el Windows debe ser una version muy vieja para no tener los modulos )  ellos se instalan en el paquete del Framework 2.0 o superior ( No estoy 100% seguro en qué version exactamente pero desde el Framework 4.0 seguro ) o alguna aplicacion con instalador que requira de los modulos entonces los instalará en el sistema. eso es al compilar de forma dinamica, al compilar las librerias de forma estatica entonces te olvidas de ese problema.

Otra manera para resolver de forma dinamica es enlazar con las librerias de las viejas versiones del VS ( 2008, 2010 ) Pero esto no funciona si estas usando las nuevas caracteristicas del C++ 11/14 , en ese caso si necesitarás tener la ultima version instalada.


Título: Re: pequeños problemitas, usando dev c++ y visual c++
Publicado por: luis_74 en 10 Mayo 2015, 19:35 pm
sí lo descrague de la misma pagina, lo configure igual:

(http://i61.tinypic.com/2j7bd3.jpg)
aunque no me muestra todas esas opciones que te salen "windowsphone, windowsdriver, windows SDK y demás"



-si  lo ponia en configuration: debug , el minimun required system  se desplegaba: 5.1, si lo cambiaba a release , se borraba ese "5.1" , y solo quedaba ese "edit". bueno , lo deje en release y escribir a mano el 5.1

(http://i60.tinypic.com/2889g8x.jpg)

- lo compile , me fui a lacarpeta release, guarde el .exe y lo pase a windows xp, y sale esto:

(http://i58.tinypic.com/aebeaw.jpg)


veo que lo malo de estos IDEs actuales (incluyendo el visual basic.net ) es que generan programas que no son portables siempre te salen con errrores al abrirlos en otros pcs que no lleven instalados los IDEs con que fueron hechos,  supongo que es caso perdido , usaré los IDEs viejitos que son más seguros, igual gracias.

-que es eso de la compilacion dinamica o estatica? , mi programas son de tipo consola.




*arriba puse unas imagenes de como lo configuré y del error que sale, parece que aveces no se pueden verlas imagenes en el foro .



Título: Re: pequeños problemitas, usando dev c++ y visual c++
Publicado por: x64core en 11 Mayo 2015, 04:08 am
Ese problema de dependecias es el que te comente en el segundo post, supuse que hibas a tener ese problema también.
¿Queres resolverlo sin complicarte tanto? Ve a configuración -> C/C++ -> Code Generation -> Opción 'Runtime Library': Multi-threaded (/MT).
Con eso enlazas la libreria de forma estatica, todas las funciones que estaban en el modulo se compilarán en tu programa, de esa manera ya no dependerá del modulo.

Nota que cada configuracion ( Debug, Release ) puede tener diferentes opciones, asi que si estableces una opcion en una configuracion las demás no se verán afectadas, para establecer una opcion para todas las configuracion en el menu de configuraciones selecccionar: All configurations.
Eso se hace cada vez que se crea un nuevo proyecto, luego podes crear un nuevo template y agregarlo al menu de inicio para que asi podas seleccionarlo de forma automatica con tus configuraciones.

Luego con experiencia podes enlazar las viejas librerias del 2008, 2010 con la nueva version, con tiempo verás que VC++ y Visual Studio junto con todas las herramientas que incluye es el entorno perfecto para Windows, solo se necesita tiempo para aprender a usarlo.


Título: Re: pequeños problemitas, usando dev c++ y visual c++
Publicado por: luis_74 en 12 Mayo 2015, 04:56 am
Ese problema de dependecias es el que te comente en el segundo post, supuse que hibas a tener ese problema también.
¿Queres resolverlo sin complicarte tanto? Ve a configuración -> C/C++ -> Code Generation -> Opción 'Runtime Library': Multi-threaded (/MT).
Con eso enlazas la libreria de forma estatica, todas las funciones que estaban en el modulo se compilarán en tu programa, de esa manera ya no dependerá del modulo.

Nota que cada configuracion ( Debug, Release ) puede tener diferentes opciones, asi que si estableces una opcion en una configuracion las demás no se verán afectadas, para establecer una opcion para todas las configuracion en el menu de configuraciones selecccionar: All configurations.
Eso se hace cada vez que se crea un nuevo proyecto, luego podes crear un nuevo template y agregarlo al menu de inicio para que asi podas seleccionarlo de forma automatica con tus configuraciones.

Luego con experiencia podes enlazar las viejas librerias del 2008, 2010 con la nueva version, con tiempo verás que VC++ y Visual Studio junto con todas las herramientas que incluye es el entorno perfecto para Windows, solo se necesita tiempo para aprender a usarlo.



ya cambie todo como dijiste , todos  los programas corren bien en windows xp, gracias.


solo una duda, con esa nueva configuracion puedo olvidar por completo todos los problemas de portabilidad? o hay algun otro tema, consejo que deba checar, mis programas deben de windows xp  en adelante, por eso lo pruebo en ese sistema.

gracias por la gran ayuda, me sirvio mucho.


Título: Re: pequeños problemitas, usando dev c++ y visual c++
Publicado por: x64core en 12 Mayo 2015, 05:06 am


ya cambie todo como dijiste , todos  los programas corren bien en windows xp, gracias.


solo una duda, con esa nueva configuracion puedo olvidar por completo todos los problemas de portabilidad? o hay algun otro tema, consejo que deba checar, mis programas deben de windows xp  en adelante, por eso lo pruebo en ese sistema.

gracias por la gran ayuda, me sirvio mucho.
Tus programas funcionarán desde Windows XP.
(http://4.bp.blogspot.com/-ZDlcsdeunz8/UwAi91Vqi7I/AAAAAAAAAeE/NRx65B41q3I/s1600/Satisfaction100Guarantee.png)