Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: x64core en 20 Agosto 2011, 02:15 am



Título: Simple programa super pesadoo!?? porq??
Publicado por: x64core en 20 Agosto 2011, 02:15 am
buenas gente TENGO UNA GRAN INCOGNITA y quiero que me saqueis de ella
y no e podido ni hacer nada tranquilo por pensar en ello
estuve estudiando un manual de programacion y vi un codigo que era para saber el tamaño de las variables de tu ordenador y lo pege en DEVc++
y lo compile y ejecute y funciono perfecto y para mi sorpresa cuando vi el tamaño del programa me quede sorprendido pesa 465KB!!!!!! señores porq pesa demasiado!!!
adonde esta el poder de C++ ???? O.o
alguien me puede explicar
este es el codigo:

Código
  1. #include <cstdlib>
  2. #include <iostream>
  3.  
  4.  
  5. int main(int argc, char *argv[])
  6. {
  7. cout << "Tamaño de char: " << sizeof(char) << " bytes" << endl;
  8. cout << "Tamaño de int: " << sizeof(int) << " bytes" << endl;
  9. cout << "Tamaño de float: " << sizeof(float) << " bytes" <<endl;
  10. cout << "Tamaño de double: " << sizeof(double) << " bytes" << endl;
  11.  
  12.    system("PAUSE");
  13.    return EXIT_SUCCESS;
  14. }
  15.  


Título: Re: Simple programa super pesadoo!?? porq??
Publicado por: rir3760 en 20 Agosto 2011, 02:29 am
El problema se debe a que la biblioteca estándar de C++ (para ser exactos las facilidades cortesia de <iostream>) se vincula estaticamente con el ejecutable.

Una explicación mas detallada del tema la puedes encontrar en la FAQ de C++ en ingles (utiliza Google). También puedes utilizar el motor de búsqueda de estos foros para revisar temas sobre la creación de ejecutables pequeños pero, si recuerdo bien, la mayoría están enfocados en (compiladores en Win32 de) C.

Un saludo


Título: Re: Simple programa super pesadoo!?? porq??
Publicado por: BlackZeroX en 20 Agosto 2011, 03:10 am
.
ammm ANSI C es mas liviano y rapido de alguna manera.

Código
  1.  
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5. int main() //(int argc, char *argv[])
  6. {
  7.    fprintf(stdout, "Tamaño de char: %d\n", sizeof(int));
  8.    fprintf(stdout, "Tamaño de int: %d\n", sizeof(int));
  9.    fprintf(stdout, "Tamaño de float: %d\n", sizeof(float));
  10.    fprintf(stdout, "Tamaño de double: %d\n", sizeof(double));
  11.    //fflush(stdout);
  12.    getchar();
  13.    return EXIT_SUCCESS;
  14. }
  15.  
  16.  

Temibles Lunas!¡.


Título: Re: Simple programa super pesadoo!?? porq??
Publicado por: x64core en 20 Agosto 2011, 03:21 am
vale tio yo ce que no so programador ce c++ pero estoy leendo el manual interaccion c++ y vb6 :P y llege a esa parte pero me dio curiosidad de saber porq pasa eso alguna explicacion debe de ser :P gracias a los dos :)

PD:

busque en el foro y encontre un usuario que tenia la misma duda :P lo que le recomendaron fue que lo comprimiera con upx :xD :P


Título: Re: Simple programa super pesadoo!?? porq??
Publicado por: BlackZeroX en 20 Agosto 2011, 03:24 am
.
Son debido a los TLB o algo asi, habria que RECREAR algunos codigos pero antes se le informaria al compilador que no ocupe los TLB predeterminados, algo asi era. me lo lei hace tiempo, llegue a compilar un exe de tan solo 500 bytes... en google hay algo de informacion.

Para crear una interaccion vb6 c/c++ bajate CodeBlocks, y crea un proyecto Shared Library... o mirate este post donde hago una interaccion entre los dos, te van a hacer falta conocimientos de las estructuras basicas que manera vb6 a nivel memoria solo para las strings.

http://foro.elhacker.net/programacion_cc/cisnumeric_vb6_a_c-t336564.0.html

En ese post deje un proyecto donde creo una dll para manejarla como API en vb6... el proyecto de la dll esta en C <--- te recomiendo Codeblocks para compilarlo.

lo del tamaño del compilado:

http://foro.elhacker.net/programacion_cc/reducir_mas_el_tamano-t254118.0.html

Dulces Lunas!¡.


Título: Re: Simple programa super pesadoo!?? porq??
Publicado por: x64core en 20 Agosto 2011, 05:44 am
gracias blackzero :) una duda :P parece que el tiene la version en español del vc yo me e matado buscando la version en español y solo ingles e econtrado :P


Título: Re: Simple programa super pesadoo!?? porq??
Publicado por: BlackZeroX en 20 Agosto 2011, 06:13 am
.
Ni idea yo uso el IDE CodeBlocks (http://www.codeblocks.org/downloads) con el compilador predeterminado.

Dulces Lunas!¡.


Título: Re: Simple programa super pesadoo!?? porq??
Publicado por: pucheto en 20 Agosto 2011, 17:05 pm
Estas compilando como release ? Pq sino te lo llena de info de debug.


Título: Re: Simple programa super pesadoo!?? porq??
Publicado por: x64core en 21 Agosto 2011, 03:18 am
noce que es eso tio :P es que yo no soy programador c++ yo programo en vb :P
 estaba viendo como hacer una interaccion de vb y c++ por eso y compile un ejemplo y me dio la curiosidad esa :P


Título: Re: Simple programa super pesadoo!?? porq??
Publicado por: Khronos14 en 21 Agosto 2011, 14:48 pm
Raul100 bájate el Visual C++ Express Edition. No hay mejor compilador de C++ para Windows, además es gratuito. Ahí si que no tienes el problema de la librería <iostream>.

Saludos.


Título: Re: Simple programa super pesadoo!?? porq??
Publicado por: x64core en 21 Agosto 2011, 19:08 pm
Raul100 bájate el Visual C++ Express Edition. No hay mejor compilador de C++ para Windows, además es gratuito. Ahí si que no tienes el problema de la librería <iostream>.

Saludos.

y cual es la diferencia entre visual C++ el que viene en el visual studio con el vb 6, inter dev 6 , foxpro , etc con ese que mencionas tio???


Título: Re: Simple programa super pesadoo!?? porq??
Publicado por: Queta en 21 Agosto 2011, 19:59 pm
Respecto al compilador y al enlazador, ninguna.


Título: Re: Simple programa super pesadoo!?? porq??
Publicado por: тαптяα en 21 Agosto 2011, 20:14 pm
.
Ni idea yo uso el IDE CodeBlocks (http://www.codeblocks.org/downloads) con el compilador predeterminado.

Dulces Lunas!¡.
Compilador, para que te informes:

Multiple compiler support:
GCC (MingW / GNU GCC)


Título: Re: Simple programa super pesadoo!?? porq??
Publicado por: BlackZeroX en 22 Agosto 2011, 07:23 am
.

Compilador, para que te informes:

Multiple compiler support:
GCC (MingW / GNU GCC)

[Atonito]
Madre... Eso era Obvio, lo dice la pagina, jajaja.
[/Atonito]

Dulces Lunas!¡.


Título: Re: Simple programa super pesadoo!?? porq??
Publicado por: Karman en 25 Agosto 2011, 05:52 am
vale tio yo ce que no so programador ce c++ pero estoy leendo el manual interaccion c++ y vb6 :P y llege a esa parte pero me dio curiosidad de saber porq pasa eso alguna explicacion debe de ser :P gracias a los dos :)

PD:

busque en el foro y encontre un usuario que tenia la misma duda :P lo que le recomendaron fue que lo comprimiera con upx :xD :P

como lo mensioné en este post (http://foro.elhacker.net/programacion_cc/porque_al_compilar_pesa_tanto_un_programa-t312102.0.html;msg1548548#msg1548548) hay un tema legal de por medio, pero en resumidas cuentas, si programas en Windows en un compilador distinto de Visual C++ y usas características de C++ tus ejecutables van a terminar siendo bastante más pesados (aclaración, esto es irrelevante dado que en memoria terminan pesando lo mismo)

S2


Título: Re: Simple programa super pesadoo!?? porq??
Publicado por: x64core en 25 Agosto 2011, 06:14 am
sale entiendo ... :P
la verdad me quedo algo de incognita este tema :P no soy programador de c++ :P pero no entendi la mayoria :P pero creo que el problema es la libreria:
#include <iostream>
no? :P
y si abro la libreria y le agrego la funcion a mi codigo? o si creo mi misma <iostream> y solo la créo con el codigo que necesito??? :P

PD: ah bueno digo que casi me quedo en cero aunq muchos me explicaron porque lo intente yo mismo pero no lo logre :P por eso trate de configurar el visual c++ 6.0 para que me creara el exe con unos 5 kb como decia E0N pero no lo logre configurar luego me baje el codeblock que me recomendo BlackZeroX▓▓▒▒░░ pero no le entendi la verdad porque ví muchos compiladores y no encontre, bueno no le entendi perdon :P


Título: Re: Simple programa super pesadoo!?? porq??
Publicado por: BlackZeroX en 25 Agosto 2011, 06:32 am
.
Codeblocks (http://sourceforge.net/projects/codeblocks/files/Binaries/10.05/Windows/codeblocks-10.05mingw-setup.exe/download)

La verdad que la pagina de descargas esta mas facil que nada... ya que hay SOLO 2 para windows... y el resto para Unix, Linux, MAC...

La verdad antes de meterte a esto mejor leete algunos conceptos... Obviamente con referencia a C/C++ o a los lenguajes de programacion...

@Release.
@Debug.
@Binary.
@Librerias.
@STL.
@Header.
....
@en fin todo lo que no entiendas leelo en google escribiendo

Define: Debug (https://encrypted.google.com/search?q=Define%3A+release&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:es-ES:official&client=firefox-a#sclient=psy&hl=es&client=firefox-a&hs=FFn&rls=org.mozilla:es-ES%3Aofficial&source=hp&q=Define:+debug&pbx=1&oq=Define:+debug&aq=f&aqi=g2&aql=&gs_sm=e&gs_upl=7284l8039l0l8286l5l5l0l0l0l0l319l1112l0.2.2.1l5l0&bav=on.2,or.r_gc.r_pw.&fp=2ca4a6fb8fc46cdb&biw=1280&bih=556)
...


 * Este enlace es para el modo debig de codeblocks...
http://wiki.codeblocks.org/index.php?title=Debugging_with_Code::Blocks

Nota:
EXPLORA EL IDE ( toolbars... menus... )

Dulces Lunas!¡.