Newsgroup: it.comp.programmare.win32
Titolo: Chi mi dice come fare è un grande

Ciao a tutti, mi sono sempre chiesto come cavolo si fa un .EXE x Win senza
che abbia bisogno delle sue librerie.
Ad esempio VB richiede il file VBRUN5.DLL (o una roba simile) e tutti gli
altri (VC++ CBUILDER ecc.) richiedono una loro libreria... Qualcuno mi sa
dire come si fanno questi EXE ???
Grazie a chi risponde...
--
bye
Keeper
-----------------------------------------
   Die by my hand
   I'll creep across the land
   Killing first born man
-----------------------------------------

 ha scritto nel messaggio
news:9885af$9d7$1...@news.ngi.it...

La libreria è necessaria se nelle opzioni di progetto si sceglie di usare
questo modo che di solito è impostato come predefinito.
In C++Builder, ad esempio,  puoi modificarla tramite il menu
Project/Options/Linker/Use dynamic RTL e Project/Options/Packages/Runtime
Pakages. Ovviamente dovendo inserire le funzioni di libreria necessarie in
un unico file EXE questo aumenterà di molto le dimensioni ma non avrà più
bisogno delle librerie di corredo.
---
Sergio Bianchi

Grazie a chi risponde...
Programmare in C (o C++) utilizzando solo le API di sistema (Win32)
senza framewrok spesso elimina la necessità di librerie esterne, oltre
ad ottenere degli eseguibili di piccole dimensioni.
Dico spesso perché se per esempio nel mio programma uso le funzioni
ODBC avrò la necessità di installare sul pc destinazione anche il
supporto ODBC (che nel caso specifico è MDAC Microsoft Data Access
Component).
Ciao !
Stefano "HappyMan"
IABLA Sezione Lago Maggiore (NO)
Foto salseri/e & I.A.B.L.A. Ring
http://happyman.n3.net

Posso risponderti x il VC++ ma penso che valga anche x gli altri linguaggi.
Il VC permette di linkare staticamente le librerie che utilizza: DLL ecc.
Quindi anche se il .exe aumenta di dimensione dovrai distribuire solo
questo e non le dll.
Sempre che tu non faccia uso di altri moduli: direct
x, odbc ecc..
Ciao
--------------------------------
Inviato via 
http://usenet.iol.it
 

 ha scritto nel messaggio
news:3aa7b103...@news.cis.dfn.de...


In C e C++, basta usare l'header:
#include <windows.h>
Poi però invece di usare un main(..) devi usare questa funzione:
int WINAPI WinMain(HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR
lpszArgument, int nFunsterStil)
{
    return 0;
}
Ma per usare le API devi conoscere bene il C e il C++ e poi le API. Ti
consiglio il buon tutorial sulle Win32's API di 
www.programmazione.it
Ti avverto, comunque che non è cosa semplice programmare in Windows e non
aspettarti risultati immediati.

che è TROPPO ad alto livello per non usare alcuna libreria.
VB ha il vantaggio di essere + semplice del C per realizzare programmi
basati su finestre, infatti in C per aprire una semplice finestra devi
scrivere un'enormità di linee di codice senza nessun significato per
chi non conosce le API di Windows.
Per utilizzare VB esiste però un programma che ti permette di
realizzare degli exe VB indipendenti; non so esattamente come funzioni
(e soprattutto non so se funziona :-) ) e comunque la dimensione degli
eseguibili non sarà piccolissima.
Provo a fare una ricerca e ti dico dove lo puoi trovare, se invece sai
già programmare in C / C++ prova ad utilizzare le API, i tuoi
programmi saranno molto + veloci e soprattutto il VB non è un
linguaggio molto potente.
Ciao
Marco Barisione (ICQ 84277092)

 eseguibili non sarà piccolissima.
il programma in questione è Fusion (vers. corrente 1.0 se non erro)
la sw house è la Bit Arts (sito: 
www.bitarts.com
 )
il programma prende l'exe VB e ti permette di selezionare quali DLL e OCX "linkare" insieme all'exe.
di default mette MSVBVM60.DLL, e se non hai usato altri controlli particoleri già dovrebbe andare bene su buona parte dei pc.
in più fusion è anche un packer. es.:
dimensione EXE VB: 34 kb
dimensione DLL (MSVBVM60.DLL): 1,2 MB
EXE risultante: ~800kb
questo è tutto quello che so.
l'ho usato per un po' di tempo. ora 'programmo' in C++  :)))
ciao
xaero