Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Mali EXE u VC++ ?

[es] :: C/C++ programiranje :: Mali EXE u VC++ ?

[ Pregleda: 2591 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Predrag Damnjanovic
Predrag Damnjanovic
Nis, Srbija

Član broj: 141
Poruke: 1305
*.bankerinter.net

Sajt: www.mycity.rs


Profil

icon Mali EXE u VC++ ?30.03.2002. u 11:22

Najmanji EXE koji sam uspeo da napravim sa VC++ 6.0 je 24kb.
Kompresovano sa UPX ispadne oko 9 kb.
Uspeo li je neko da napravi manji EXE od 24kb?
30.03.2002. u 11:22 

Ivan Dimkovic
Ivan Dimkovic
Vice President - Product and Business
Development, Cinemo GmbH
EU

Administrator
Član broj: 13
Poruke: 13836
*.verat.net

Sajt: www.linkedin.com/in/ivand..


Profil

icon Re: Mali EXE u VC++ ?30.03.2002. u 12:39
Evo, ja sam upravo napravio EXE od 16 KB koji kad se spakuje UPXom ima 2 KB

Trik je da ne koristis CRT biblioteku - mada je meni ovo u kontekstu pisanja Win32 korisnickih programa potpuno besmisleno.


MSVC moze stvarno praviti male programe, secam se da sam 1997 napravio 3D intro za DOS, koji je imao 4k, a pisan je u C-u sa inline assemblerom. Sam source fajl je bio oko 25 KB, a kad se prevede i kompresuje PKLITEom imao je 4KB. Intro je imao 3D engine (transformaciju vektora, sencenje i osvetljenje) - prostu rotaciju i blur out + pikselizaciju na kraju. Sam objekat je imao oko 150-200 trouglova, ne secam se tacno.

Naravno, intro nije koristio CRT library, cak ni startup (crt0.asm) - ali se kompajlirao sa MSVC-om, i koristio sve prednosti C-a. Floating point se nije koristio, vec je koriscena fixed point algebra zbog brzine (intro je radjen na 486 DX4 na 133 MHz)
SpikeFun - Cortical Neural Network Simulator:
http://www.dimkovic.com/node/1
Demo Video: http://www.youtube.com/watch?v=CQXxzQDjXNc&hd=1
Prikačeni fajlovi
30.03.2002. u 12:39 

Predrag Damnjanovic
Predrag Damnjanovic
Nis, Srbija

Član broj: 141
Poruke: 1305
*.bankerinter.net

Sajt: www.mycity.rs


Profil

icon Re: Mali EXE u VC++ ?30.03.2002. u 12:51
Laptopovi

Kako se iskljucuje ta CTR biblioteka, i sta time gubim?
30.03.2002. u 12:51 

Ivan Dimkovic
Ivan Dimkovic
Vice President - Product and Business
Development, Cinemo GmbH
EU

Administrator
Član broj: 13
Poruke: 13836
*.verat.net

Sajt: www.linkedin.com/in/ivand..


Profil

icon Re: Mali EXE u VC++ ?30.03.2002. u 12:56
Pa ne koristis ANSI-C funkcije (printf, scanf, getc, itd...)

A u procesu linkovanja stavis /NODEFAULTLIBRARY

Takodje, i /ENTRY:neka_tvoja_funkcija_koja_nije_main

Gubis dosta toga, sve usluge CRT biblioteke viseg nivoa (operacije sa stringovima, fajlovima, itd)

Naravno, uvek mozes pozivati Win32 ekvivalente (u mom primeru MessageBoxA) kojih ima sasvim dovoljno.

Prednost ovoga je sto u 20-30 KB (tj. spakovanih 10-20 KB) mozes smestiti neki OpenGL/Direct3D applet za Internet koji bi se trenutno ucitavao. Sve zavisi sta hoces da uradis.

SpikeFun - Cortical Neural Network Simulator:
http://www.dimkovic.com/node/1
Demo Video: http://www.youtube.com/watch?v=CQXxzQDjXNc&hd=1
30.03.2002. u 12:56 

Predrag Damnjanovic
Predrag Damnjanovic
Nis, Srbija

Član broj: 141
Poruke: 1305
*.bankerinter.net

Sajt: www.mycity.rs


Profil

icon Re: Mali EXE u VC++ ?30.03.2002. u 13:13
A aplikacija ne mora da bude konzolna?
30.03.2002. u 13:13 

Predrag Damnjanovic
Predrag Damnjanovic
Nis, Srbija

Član broj: 141
Poruke: 1305
*.bankerinter.net

Sajt: www.mycity.rs


Profil

icon Re: Mali EXE u VC++ ?30.03.2002. u 13:27
Kad mu iskljucim default library, javlja ovo:

Linking...
LINK : error LNK2001: unresolved external symbol _WinMainCRTStartup
Release/go1.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

Nisi mi rek'o kako da iskljucim taj CRT?
Inace, pokusavam da iskompajliram ne-konzolnu aplikaciju.
30.03.2002. u 13:27 

Ivan Dimkovic
Ivan Dimkovic
Vice President - Product and Business
Development, Cinemo GmbH
EU

Administrator
Član broj: 13
Poruke: 13836
*.verat.net

Sajt: www.linkedin.com/in/ivand..


Profil

icon Re: Mali EXE u VC++ ?30.03.2002. u 13:53
Ne mora da bude konzolna aplikacija

cl moj_mali_program.c /c

link /NOD /ENTRY:moj_entry_poing /SUBSYSTEM:WINDOWS user32.lib gdi32.lib kernel32.lib


/SUBSYSTEM:[CONSOLE | WINDOWS | NATIVE | POSIX]


SpikeFun - Cortical Neural Network Simulator:
http://www.dimkovic.com/node/1
Demo Video: http://www.youtube.com/watch?v=CQXxzQDjXNc&hd=1
30.03.2002. u 13:53 

Predrag Damnjanovic
Predrag Damnjanovic
Nis, Srbija

Član broj: 141
Poruke: 1305
*.bankerinter.net

Sajt: www.mycity.rs


Profil

icon Re: Mali EXE u VC++ ?30.03.2002. u 15:21
Hvala, radi!
Mada me posteno namuci sa /entry, trebalo mi 15 minuta da ukapiram da trebam da stavim main
30.03.2002. u 15:21 

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
..ndg-pm4-1.dialup.nethere.net



Profil

icon Re: Mali EXE u VC++ ?30.03.2002. u 16:48
Citat:
Ivan Dimkovic:

Gubis dosta toga, sve usluge CRT biblioteke viseg nivoa (operacije sa stringovima, fajlovima, itd)

Naravno, uvek mozes pozivati Win32 ekvivalente (u mom primeru MessageBoxA) kojih ima sasvim dovoljno.

Prednost ovoga je sto u 20-30 KB (tj. spakovanih 10-20 KB) mozes smestiti neki OpenGL/Direct3D applet za Internet koji bi se trenutno ucitavao. Sve zavisi sta hoces da uradis.


CRT je neophodan ako hoćeš da praviš portabilne programe (ISO C/C++). A ako si već rešio da se vežeš za Win, može sasvim lepo i bez njega. ATL projekti po default-u izbace CRT.

A nije loša ideja ni da se program dinamički linkuje sa CRT-om. Tada možeš da koristiš sve standardne funkcije i opet dobiješ "mali" exe.
30.03.2002. u 16:48 

Milan Aksic

Član broj: 412
Poruke: 1053
*.ptt.yu



Profil

icon Re: Mali EXE u VC++ ?30.03.2002. u 17:34
D.T. kako bi moglo da se izvede da se program dinamicki linkuje sa CRT-om ?
30.03.2002. u 17:34 

Ivan Dimkovic
Ivan Dimkovic
Vice President - Product and Business
Development, Cinemo GmbH
EU

Administrator
Član broj: 13
Poruke: 13836
*.verat.net

Sajt: www.linkedin.com/in/ivand..


Profil

icon Re: Mali EXE u VC++ ?30.03.2002. u 17:39
Koristis MSVCRT.lib

tj. -MD switch (cl.exe)

ili odgovarajucu opciju u "Project Options" u MSVC++

SpikeFun - Cortical Neural Network Simulator:
http://www.dimkovic.com/node/1
Demo Video: http://www.youtube.com/watch?v=CQXxzQDjXNc&hd=1
30.03.2002. u 17:39 

Predrag Damnjanovic
Predrag Damnjanovic
Nis, Srbija

Član broj: 141
Poruke: 1305
*.bankerinter.net

Sajt: www.mycity.rs


Profil

icon Re: Mali EXE u VC++ ?30.03.2002. u 23:14
Evo sta je stalo u 3kb
Prikačeni fajlovi
30.03.2002. u 23:14 

Ivan Dimkovic
Ivan Dimkovic
Vice President - Product and Business
Development, Cinemo GmbH
EU

Administrator
Član broj: 13
Poruke: 13836
*.verat.net

Sajt: www.linkedin.com/in/ivand..


Profil

icon Re: Mali EXE u VC++ ?04.04.2002. u 14:04
Baci pogled na 4k introe da vidis sta sve stane u 4 KB... :)

SpikeFun - Cortical Neural Network Simulator:
http://www.dimkovic.com/node/1
Demo Video: http://www.youtube.com/watch?v=CQXxzQDjXNc&hd=1
04.04.2002. u 14:04 

[es] :: C/C++ programiranje :: Mali EXE u VC++ ?

[ Pregleda: 2591 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.