Newsgroup: it.comp.programmare.win32
Titolo: Grandezza in K dei progetti

Solitamente programmo con il VB6. Da qualche giorno ho cominciato a studiare
il VC++6.
Se in VB faccio un programmino banale...nella cartella creata avrò
complessivamente files per un massimo di 10 o 15 K. Lo stesso progetto
realizzato con VC++6 mi ha riempito una cartella con 8 MEGA di files.
Perchè tutta questa differenza?
totò


Durante la fase di compilazione il compilatore si occupa della
"trasformazione" del codice sorgente(file con estensione cpp e c) in file
object (file con estensione obj) e questi, successivamente, vengono
"trasformati" dal linker nel file eseguibile che carica la tua applicazione.
Quest'ultima fase č messa in atto solo se la fase di compilazione č andata a
buon fine, ovvero se non sono stati trovati errori (relativi alla grammatica
del linguaggio C). Una volta creato l'eseguibile i file oggetto non sono piů
necessari, pertanto li puoi eliminare tranquillamente. Pertanto ti
ritroverai un'applicazione potente creata con VC di soli pochi KB.
Ciao
Sergio Mola

 writes:
pl> Solitamente programmo con il VB6. Da qualche giorno ho cominciato
pl> a studiare il VC++6.  Se in VB faccio un programmino
pl> banale...nella cartella creata avrò complessivamente files per un
pl> massimo di 10 o 15 K. Lo stesso progetto realizzato con VC++6 mi
pl> ha riempito una cartella con 8 MEGA di files.
Credo che dipenda dagli header precompilati (* va a prendersi un antiemetico *)
--
Gian Uberto| main(){printf(&unix["\021%six\012\0"],(unix)["have"]+"fun"-0x60);}
Lauri      |                        David Korn, 1987 ioccc best one liner 
(aka saint)|-------------------------------------------------------------------
em@ail: sierra alfa india november tango AT echo november golf DOT india tango

 "trasformati" dal linker nel file eseguibile che carica la tua
applicazione.
<CUT>
****
Sergio, ti ringrazio per la tua esauriente risposta. Adesso avrei un altro
quesito da porti.
Eccolo:
un paio di giorni fa ho realizzato un programmino che, alla pressione di un
tasto visualizzava un avviso.
MessageBox("Hello");
sul mio PC è stato compilato ed il file .exe funzionava correttamente. L'ho
spedito ad un amico e lui non riesce ad avviarlo. Gli dice che manca una
.dll.   gliel'ho spedita e ne chiedeva un'altra.
Domanda: I programmi compilati con VC++6 necessitano di installazione?
Quelli del C++ che ho realizzato (programmini banali) funzionavano anche
senza. Quelli che avevo realizzato con il Borland 5.5 neanche.
Grazie, totò

 Grazie, totò
Caro totò,
il problema è che i programmi, per quanto "stupidi", necessitano di diverse
librerie installate per poter funzionare. Prima fra tutte svetta la libreria
MFC42.DLL, poi seguono tutte le altre (il 42 indica la versione) solo se
l'applicazione deve funzionare su sistemi operativi Windows 9/x e Me, perchè
per Windows NT serve un'altra libreria. Ora non so dirti tutte le librerie
che necessitano al funzionamento di una qualunque applicazione ma, se ti può
essere d'aiuto, installando Visual Studio 6.0 si ha anche la possibilità di
installare l'utility InstallShield che permette, appunto, di creare i dischi
di installazione delle applicazioni create con Visual C++. Tale applicazione
rileva tutte le librerie necessarie alla "trasportabilità"
dell'applicazione. Spero d'esserti stato d'aiuto.
Buon lavoro!
Sergio Mola

 Sergio Mola
****
Grazie come sempre gentilissimo!
totň

 senza. Quelli che avevo realizzato con il Borland 5.5 neanche.
usa il dependency walker per vedere tutte le dll di cui hai bisogno
--
ciao
XAERO [*]
"Se vuoi renderti conto del valore del
denaro, prova a chiedere un prestito"
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GCA/CM/CS/CC/E/O d?(-) s+:-- a--->? C++++(+)$@ UL-(--) P>++ L+() E-- W+++$@
N++@ o-- K- w+++(++++)@ O--- M V? PS+++ PE-(--) Y? PGP>++ t? 5? X+ R- tv-
b+(++) DI? D++ G- e !h !r y?
------END GEEK CODE BLOCK------