Newsgroup: it.comp.lang.visual-basic
Titolo: eseguibile che giri senza installare VBRUN.DLL

Vorrei sottoporrvi alcuni problemi, che probabilmente sembreranno banali ai
programmatori seri :
siccome sto sviluppando un (semplice) software in visual basic (ver 5
Learning, che non compila EXE in vero codice macchina ma solo in PCode), e
siccome il medesimo si appoggia sul runtime (il famigerato VBRUN500.DLL),
avrei necessità di sapere se posso caricare con qualche artificio la
suddetta libreria (prima o contestualmente al caricamento del programma) a
partire da qualsiasi path (esempio il CD rom di distribuzione o la directory
di download) ma soprattutto senza la necessità di "installare" alcunché
sotto SYSTEM dell'utente. Esiste una qualche API chiamabile da un file *.INF
o *.BAT o di scripting o altro per precaricare la DLL ?
Il motivo di questo è che temo che una chiamata dall'interno del programma
(che dovrebbe appoggiarsi a priori sul runtime per girare) non potrebbe mai
caricare il runtime stesso ! Sarebbe una specie di riferimento circolare o
sbaglio ?
L'altra cosa, più complicata (anche a spiegarsi) : nel programma uso un
controllo WebBrowser (niente di sofisticato, quello standard di microsoft).
Mi chiedevo se fosse possibile "chiedergli" di navigare invece del classico
file su disco un'oggetto in memoria (es. stringa, puntatore ad array di
qualche genere). O se esiste un modo per usare memory-files che siano
trasparenti al browser e visti come veri file pur essendo oggetti residenti.
Grazie 1000 di ogni eventuale suggerimento !
Ciao
Soviet-Mario


una volta ho trovato un programmino, non ricordo se su 
astalavista.com
 o
crackstore.com
, in grado di accorpare dll e ocx direttamente con
l'eseguibile che le usava. Non ricordo il nome di questo giocattoli, nè
tantomeno l'ho mai usato quindi non saprei dirti se funziona per davvero,
cmq un giro da quelle parti potrebbe tornarti utile.
Al resto non ti so rispondere, purtoppo non faccio parte della schiera degli
esperti programmatori, quindi rimetto il post a chi ti sa rispondere.
ciao ciao

 cmq un giro da quelle parti potrebbe tornarti utile.
grazie. Proverò a cercare li
Ciao
Soviet-Mario
CUT

 suddetta libreria
[CUT]
Da quanto ho potuto appurare per esperienza empirica
l'eseguibile è in grado di utilizzare le librerie che gli servono
anche se non sono installate
(fanno eccezione naturalmente i componenti cui necessita apposita
settaggio sul registro di configurazione)
a condizione che si trovino nella stessa directory dell'eseguibile.
Non avendo trovato (a dir la verità nemmeno cercato)
documentazione in merito non so se il tentativo di trovare le
librerie nella stessa directory avvenga prima o dopo del tentativo
di trovarle nelle directory di sistema
so solo che ho fatto questo tentativo (ispirato da una tecnica
che era standard su un epico computer che si chiamava Amiga)
e ha funzionato:
ho realizzato un player per video cd che parte da cd senza essere
preventivamente installato, semplicemente mettendo VBRUN.....
nella directory dell'eseguibile.
Se esistesse un metodo alternativo che inglobi realmente le librerie
(come faceva quickbasic) sarei interessato a saperlo
per la realizzazione di un compressore-distributore di pacchetti
di installazione.
--
Mauro Cerreto
www.cerretosoft.it
MSN-Yahoo mauro_6808

 wrote in message
tRGNb.260703$e6.10...@twister2.libero.it...


 di trovarle nelle directory di sistema
Prima .. nella cartella poi nella directory %system%
Regmon
http://www.sysinternals.com/ntw2k/source/regmon.shtml
--
Fosco

 Prima .. nella cartella poi nella directory %system%
grazie !
Cmq, avresti qualche idea del tool adatto per linkare in modo statico e non
dinamico, A  POSTERIORI  ovviamente, tutto quanto necessario al run del
programma in un sistema privo di DLL ?
Ciao
Soviet-Mario


 programma in un sistema privo di DLL ?
??????
Arabo per me' mi mancano i post iniziali ed avevo  risposta alla questione
delle dll cercate prima dove e come essendomi imbattuto in questo da poco
Con quel programma e questo Filemon (anche il depends.exe di VB)
http://www.sysinternals.com/
 vedi che qualsiasi programma
(se non prendo un abbaglio anche quelli di windows stesso) cercano
sempre prima qualsiasi dll nella cartella del programma stesso e poi
se non trovato (NOTFOUND)nelle directory di sistema
Prova per esempio ad aprire IrfanView 
http://www.irfanview.com/
e monitorare con Filemon e noterai che per esempio il
Winspool.drv lo cerca prima nella directory di Irfan stesso non
lo trova  e lo cerca subito dopo in system trovandolo
Non so cosa vuoi fare ma con questi due programmi puoi provare
e fare quello che vuoi e vedere se l'operazione ha successo o meno
e se e dove s'impalla e ci sono problemi e quali
DLL Show
http://www.gregorybraun.com/
DLL Dependencies
Click your mouse on the name of a running process to see a list of all DLL dependencies for that task or process. DLL Show can
also be used to print a complete list of the selected processes DLL dependencies.
Copyright © 1997-2000 by Gregory Braun. All rights reserved.
Process Explorer 
http://www.sysinternals.com/
You can search for processes that have particular DLLs loaded or handles opened.
Process Explorer also has a powerful search capability that will quickly show you which processes have particular handles opened
or DLLs loaded.
The unique capabilities of Process Explorer make it useful for tracking down DLL-version problems or handle leaks, and provide
insight into the way Windows and applications work.
--
Fosco

 Arabo per me' mi mancano i post iniziali
scusa ! Riassumo semplicemente le puntate precedenti : ho un eseguibile
compilato (ma č solo PCode e non un vero EXE in codice nativo, in quanto ho
VB in edizione Learning che "compila" solo in pseudocodice e non in macchina
puro).
Il programma quindi, volente o nolente si appoggia al runtime
(VBRUNXXX.DLL). che č una libreria a collegamento dinamico (che l'utente
potrebbe non avere né gradire sul proprio sistema).
Mi chiedevo se ci fossero strumenti (freeware) per linkare tale DLL dentro
l'EXE in modo statico (inglobare il codice delle funzioni effettivamente
chiamate dalla libreria, o al peggio l'intera libreria), e rendere l'EXE del
tutto trasparente all'utente ed inutile l'installazione di qualsivoglia
componente aggiuntivo.
Vorrei in altre parole distribuire un eseguibile completamente stand-alone e
non sovrascrivibile.
Spero di essermi spiegato meglio
Ciao e grazie
Soviet-Mario
