Newsgroup: it.comp.lang.c++
Titolo: DLL da escludere; come si fa?

Salve a tutto il NG,
le mie due uniche domande sono queste:
1) possiedo Visual C++ 4.0 (versione Standard) con la quale ho creato degli
eseguibili per gestire file di dBase con l'ausilio delle MFC ma
ora non riesco a compilare l'exe staticamente, senza cioe' le
DLL esterne.
Premetto che  nei settaggi del Linker c'e' la sola opzione <Use MFC  in a
Shared DLL> che tra l'altro non puo' essere nemmeno esclusa!
Come si fa?
2) L'altra domanda e' questa: compilando dinamicamente ho il problema
che non riesco a determinare quali sono le DLL che devo cedere assieme al
programma; io uso il metodo molto empirico di provare l'exe su un altro PC
privo delle stesse e, man mano che mi vengono richieste, le passo nel
corredo del pacchetto.
E' un po' primitivo ma non riesco a fare altrimenti!
C'e' un metodo per conoscere le DLL relative all'exe compilato?
Grazie a tutti
--
Massimo  Tripodi
________________________
ma...@thebrain.net
http://thebrain.net/~maxt

 corredo del pacchetto.
Se distribuisci la versione relase non dovresti avere problemi perche'
le dll che uttilizzi sono gia' presenti sui sistemi dove installi il
software perche facenti parte di windows.
Se usi dll particolari beh, quelle le conosci e le puoi ridistribuire.
Se vuoi rilasciare la versione debug invece ci sono le dll appositamente
modificate per il debugging, allora puoi utilizzare il metodo che hai
descritto.
Io non ho mai avuto problemi, ho sempre distribuito solo il .exe.
Spero di essere stato di aiuto.
Ciao.
-- 
     (ZZZ)       Filippo Salotti, Bagni di Lucca, Lucca, Italy.
    //   \\  _                 E-mail : 
fil...@humnet.unipi.it
   /Y\    ZD<_o===============================================o
 .oZZZZZo.     | Studente Ingegneria Informatica Automatica  |
<OXXXXXXXO>    | Dip. Sistemi Elettrici Universita' di Pisa. |

C'e' un metodo per conoscere le DLL relative all'exe compilato?
Non ricordo se c'era anche nella 4.0 (troppi anni son passati!), ma
nella 5.0 c'e` l'utile utility (ridondante, eh?) "dumpbin.exe"; facendola
girare su di un modulo impari tantissime cose sul modulo stesso, a
seconda dei flag che passi, e in particolare col flag /IMPORTS hai
la lista di quali funzioni il modulo "importi", e da quali altri moduli (il
termine "modulo" in Win32 indica indifferentemente EXE e DLL;
entrambi sono infatti in grado sia di esportare, sia di importare delle
funzioni a/da qualsiasi altro modulo, dell'una o dell'altra natura).
Non trascurare, naturalmente, di farlo girare "iterativamente" anche
sulle DLL, che infatti potrebbero a loro volta importare da altri!
Se non trovi dumpbin col tuo VC++ 4.0, puo` darsi che faccia parte
del "Platform SDK/98" gratuitamente scaricabile dal sito della
Microsoft; come minimo, puoi visitarlo, iscriverti alle varie gratuite
associazioni ivi a disposizione (MSDN, SBN, ecc ecc), e vedere
se e` fra i download, e dove (non sono sicuro che del Platform
SDK tu possa avere facilmente un elenco dei contenuti -- se devi
scaricarlo tutto, e` non piccolo...).
Altra possibilita` e` l'utility "Quickview" (che non so bene di
quali pacchetti faccia parte, forse viene con Win/NT e /98?),
che, fra le varie altre preziose info, se la fai girare su di un
modulo (bottone destro->menu di contesto->Quickview [in
inglese; in italiano non so, forse "anteprima"?]), ti da` anche
la tabella delle "importazioni".
Senza dubbio in rete puoi trovare altri strumenti ancora per
fare questo umile ma prezioso lavoro...!
Alex