Newsgroup: it.comp.lang.visual-basic
Titolo: [Approfondimento] [Lungo] "Errori non segnalati e EXE che non si eseguono ..." PERCHE' ?

ok oramai penso che tutto il NG abbia assistito alla mia crisi di panico con
il 3ad  "[?] L'Exe non parte !!!! Disperazione totale al venerdi !!! ",
praticamente ho scovato l'inghippo :
in pratica se in un exe inserisco una chiamta ad un metodo specifico di un
activeX , questi mi rende l'exe inutilizzabile .
Mi spiego meglio :
metodo Incriminato dell'activex = AX.SelectItem()
ok adesso creo 2 exe , il primo con la chiamata e il secondo senza chiamata
ma badate bene , tutti e due gli exe non chiameranno mai il metodo
Ax.SelectItem()
(anche con la gestione degli errori il risultato non cambia)
A.exe
------------
'form vuoto con solo l'oggetto AX sopra
Private Sub Form_Load()
 MsgBox "Messaggio di Controllo"
End Sub
'questa sub non viene MAI chiamata da codice...
Private Sub NON_MI_CHIAMA_NESSUNO()
 ax.init
 ax.setqualcosa
 ax.SELECTITEM
End Sub
------------
B.exe
------------
'form vuoto con solo l'oggetto AX sopra
Private Sub Form_Load()
 MsgBox "Messaggio di Controllo"
End Sub
'questa sub non viene MAI chiamata da codice...
Private Sub NON_MI_CHIAMA_NESSUNO()
 ax.init
 ax.setqualcosa
    ' ax.SELECTITEM
End Sub
------------
ora che succede ? , bene compiliamo i 2 exe ...
sulla macchina dove c'e' il VB parte tutto perfettamente ( si vede il
msgbox)  , su una macchina ( con AX registrato e tutte le referenze
apposto ) cliccando sull'exe si ode solo un beep e l'exe non se ne vede
traccia nemmeno nelle applicazioni in uso ... avete capito , NON VIENE
SEGNALATO NESSUN ERRORE , solo un beep per un exe che dovrebbe mostrare solo
un msgbox
ora vengo finalmente alla DOMANDA:
PERCHE' ?
Come puo' formarsi una situazione simile ?
l'exe su una macchina viene "aperto" e su un altra non si ode nient'altro
che un "beep", com'e' possibile ?
usando un activex entra in gioco anche il DCOM ma non ho trovato nessuna
notizia sull'argomento , cacchio ma cosa accade veramente quando si clicca
su un file EXE ?
In attesa di una lucina nella mia mente buia vi auguro un buon WE !
un Gigio Finalmente Sollevato... ma sempre + incuriosito !

 Come puo' formarsi una situazione simile ?
Io, dopo aver letto due volte (oddio, forse non bastano...) il tuo codice
(non hai barato, vero?!), dico, per la miliardesima volta (cazzo non trovo
il font con size 72, porpora cardinalizia e con tutte le stelline animate):
------------------- In M$ BEVONO!!! -------------------- Seguirebbero 4Mb di
punti esclamativi.
Torno serio e dico: Sfido chicchessia a dimostrare il contrario.
No, non portatemi un Bill artificiosamente sobrio.
Darebbe in escandescenze se tirassi fuori di tasca il tappo di sughero di un
vinello qualsiasi.

 ------------------- In M$ BEVONO!!! --------------------
eh eh , e' vero ma resta un fatto :
come fa un exe a essere "distrutto" appena creato per un errore che viene
segnalato solo con un beep  ?
e in + , come cavolo faccio a capire che quel beep e' un errore e che il mio
exe non sta runnando ??

 exe non sta runnando ??
Semplice: Non puoi. Manda una cartolina di ringraziamento a Bill.

 exe non sta runnando ??
"runnando" ?
quando scrivero' la storia di questo newsgroup, faro' nick ed email
(accuratamente de-anti-spammati :P)
comincia pure a prepararti ai virus zingarell.exe, 
devoto-ol.com
, e
anche a un diz.bat che ti lancia un morphol.html contenente un
ethimology.vbs.net
 assolutamente perfido. del tuo disco rimarra' si' e
no il connettore ac.
buon uichendo :P
j.runica

 (accuratamente de-anti-spammati :P)
azz eddai ma dopo lo stress di oggi me la passate ?
e poi mi deriva dal C64 ... lě si che "vedevi" quando caricavi qualcosa ...
ghghgh !
Maledette cassette !
cmq mi scuso con i puristi ma " i termini inglesi con terminazioni italiane
" , (per non ripetere una parola vietata) io li supporto , anzi li UPPO in
pieno
^____^
un Gigio che si prepara alla battaglia

javalab wrote:
[...]
ROTFL



LOL ;-P
Ciao,
Moreno
-- 
sirri at morenosoft dot com
Moreno Sirri VB Site - 
http://www.msvbsite.net
---------------------------------------------------------------------------
Le risposte alle tue domande le trovi sul Sito Comune di questo NewsGroup:
 
http://www.it-lang-vb.net
---------------------------------------------------------------------------

""Gigio2K"" <baronef...@SPAM-YOURSELFyahoo.com> ha scritto nel messaggio
news:uscB9.744$Ka3....@twister1.libero.it...
cut
..aiut....io non ho capito un caz!
ri-aiutami che č sabato e forse ho trovato che fare nel piovoso weekend
faccio un progetto e ci metto ad esempio un listbox
che non userņ mai....
compilo ed installo ? ho capito bene?
oh beh il progetto di altri che ho dovuto pesantemente ristrutturare č la
fiera dell trudbgrid disattivita perchč non si sa che fa o dei datacontrol
saltati!
soltanto commentati....
ma funziona!
compilato in xp e installato da xp a win 98 passando per Me (mi manca 2000
perņ)
non sarą buggato quel controllo?
o parli di tuoi activex sviluppati?...non avranno un bachettino?...io credo
(ma qui ci vuole un guro o una gura del compilatore Vb) che comunque tutti i
componenti e le librerie sono comunque inizializzate ...indipendentemente
dal fatto di usarle o meno....se ci sono in riferimenti lui le
inizializza....credo giustamente no?...fai l'inverso lascia il codice e
togli il riferimento...si rifiuta di compilare...segno che se anche non lo
usi qualcosa ci fa lo stesso!...e se sta inizializzazione č bacata (virus,
loop infinito, wait di una conn etc etc ) ti ride in faccia!
Almeno credo sia cosģ...ci vorrebbe un Hyperion che con compilatori , codici
compilati et simila ci naviga come la corazzata potiomkin!
:o)

"Wodka4U(xp)" <mar_TOGLI_co@ma_194ANCHE_195463QUI_rtek.it> ha scritto nel
messaggio news:wSoB9.16090$744.5...@news1.tin.it...
...sul pc di sviluppo funziona perchè hai esattamente lo stesso
ambiente...il workspace funzionante....
tanto è vero che ho visto colleghi disperati brutalmente installare vb su
macchine del cliente e compilare al volo dal cliente....poi cancellavano i
collegamenti!ma sotto avevano vb!
.....pensa un po!
:o(

End Sub
nella sub ^^^^^ viene anche creata l'istanza ?
Saluti

 conflitto di CLSId (pensavate fosse impossibile vero ?)
E' vero!
E' successo più volte anche a me che ricompilando continuamente componenti
in diverse compatibilità (quindi con CLSID diversi) questi prima o poi
smettessero di funzionare con i comportamenti più disparati.
Soluzione: una passata ogni tanto di RegClean.
P.S.: poi mi devono spiegare perchè due classi con CLSID diversi riescono a
darsi fastidio tra di loro...
Ciao

 loop infinito, wait di una conn etc etc ) ti ride in faccia!
e' ancora peggio di quel che sembra :
e' un ocx di terze parti sche stiamo portando avanti insieme (noi come
betatester).
sai qual'e' il bello ?
e' che prendiamo per esempio un controllo di esempio come una text box , ora
il problema ce sorgeva era questo :
crea una sub che non chiamerai mai nel progetto (e' solo per test)  , poi al
suo interno ci metti un po di metodi del ocx , in questo caso prendiamo per
esempio :
(pseudo)
sub INUTILIZZATA()
text1.text= "ciao"
text1.backcolor = vbyellow
end sub
sub form_load
    msgbox "ciao mondo"
end sub
bene , ora compili il tuo EXE che non fa assolutamente un cavolo , lo lanci
sulla tua macchina ed esce la messagebox , lo lanci su un altra macchina e
non funiona , bene , debugghiamolo ,
alla fine nel debug scopri che la riga che da errore e' :
 test1.backcolor = vbyellow
se la togli sulla macchina dove non funzionava adesso e' tutto ok , adesso
si e' capito che inserendo nel listato di un exe un metodo di un controllo
che non verra' mai istanziato e utilizzato , esso verra' distrutto senza
nessun valido motivo, ora se avessi davanti a te :
guglielmo cancelli e
il programmatore che ha implementato il metodo .baccolor ,
cosa faresti avendo un solo colpo con la pistola ?
 ammazzare il programmatore e lasciare bill ?
oppure da mente analista la soluzione + adatta e' colpire col calcio della
pistola il programmatore , poi usare la sua testa per spaccare quella di
guglielmo e poi infine usare il colpo in canna per abbandonare questo mondo
di M$ ( tradotto : mondo di mer...) ^_^

 ammazzare il programmatore e lasciare bill ?
Prenderei a calci in culo il programmatore finche'
non ha capito come deve fare il suo lavoro.
-- 
ciao, hal

 oppure da mente analista la soluzione + adatta e'
[CUT]
Se la pistola č almeno una 32 (una 22 penso sia troppo fiacca,
l'ideale č una 45) li fai affiancare, e spari nell'orecchio di uno,
se la mira č buona, il proiettile passa il cervello di entrambi.
Eeee... non dovrebbe incontrare troppa resistenza, direi... ;-)
Pap.Splatter

 > o parli di tuoi activex sviluppati?...non avranno un bachettino?...io
CUT
scusa Gigio ....ma io ho provato!
perchè mi hai fatto venire un colpo....e mi suona strana la cosa.....io ho
il progetto attuale che ha quintali di DBcombo(Buggate ...grazie HAL!),
DBgrid, DataControl disattivati e lasciati nel progetto....routine che dove
ho potuto ho commentato ma nelle migliaia di righe di codice di sicuro molte
routine sono ancora li inutilizzate!
io ho preso un progetto EXE
ci ho messo un textbox
e......
Option Explicit
Private Sub Form_Load()
MsgBox "ci sono!"
End Sub
Sub Prrrr()
    Text1.Text = "guguy"
    Text1.BackColor = vbYellow
End Sub
compilato e lanciato l'exe su altra macchina!...non ho fatto l'install
completo...
tutto regolare!...
come deve essere!
:-)
io propendo per il fatto che il tuo ocx in beta abbia fatto un po di sano e
incazzoso casino e sia solo lui e non in compilatore vb a fare aandare in
tilt le macchine!
(o i soliti problemi fra versioni dll che il prog si aspetta e che invece
trova nei pc ospiti)
Saluti!
ah...pc sviluppo vb6sp5 winxpPro...pc ospite winxpPro...(non ho 2000 dopo la
storia della status bar che mi scompariva l'ho bandito dai miei pc!)

 trova nei pc ospiti)
E' anche possibile, pur non usando esplicitamente certe proprietà che
provocano il problema, che l'OCX (per esempio quando viene inizializzato) vi
faccia al suo interno riferimento, implicito o esplicito.

 tilt le macchine!
E' quello che intendevo:
secondo me l'ocx "incriminato" fa un bel po' di pasticci usando
altri componenti.
Gigio ha "confessato" che č scritto in Vb e noi tutti sappiamo
quanto Vb costruisca degli "accrocchi" piů che degli ocx...
ciao
ugo

 Eeee... non dovrebbe incontrare troppa resistenza, direi... ;-)
Nein tu sbagliare! Tu defi usare pistola mauser ja! :)

 ha scritto

mauser ? das maus ist genug, mit windovs.

 Eeee... non dovrebbe incontrare troppa resistenza, direi... ;-)
na a parte che il proiettile uscirebbe senza portarsi dietro nemmeno un po
di sangue, il problema e' che non provoca danni seri agli interessati visto
che ragionano con altre parti anatomiche che vanno dai piedi ai peli delle
narici :/

Oh, mi metto in evidenza questo topic (tutto!) e la prossima volta che mi
dite "Lupo, che palle!" quando parlo (male, ovviamente) di M$, ve lo
riposto, intero! Ciapalč! ;-)))

 faccia al suo interno riferimento, implicito o esplicito.
esatto, anche io credo sia questo , il programmatore mi ha confessato che
potrebbe derivare dal UDT che restituisce la classe incriminata , or ora mi
sta mandando la classe splittata nelle varie variabili as long ,
cioe' pensiamo che la classe : selectitem(numero).nSheetID e .nObjectID crei
problemi ,
adesso provo i 2 nuovi metodi che mi ha creato : la selectitemnsheet(numero)
e SelectItemnObject(numero) ^_^
cioe' come dire : "non funziona cosi, mettiamoci una pezza" !!!

 darsi fastidio tra di loro...
Misteri di M$ ... rendiamo grazie a Bill ...

 quanto Vb costruisca degli "accrocchi" piů che degli ocx...
no mi esprimo !

e SelectItemnObject(numero) ^_^
Allora digli che controlli anche i riferimenti circolari che ha
seminato nel componente.
-- 
ciao, hal

 seminato nel componente.
bhe cmq con questi 2 metodi as long non ho problemi , in pratica il problema
e' nella classe che ha creato che restituisce un UDT , se vuole se lo studia
e si risolve il problema ^_^


Qualunque sia il problema, resto del mio parere!
Butta via 'sto coso!
ciao
ugo

 Butta via 'sto coso!
e lo dici a me ?
Solo che sono scelte del "commerciale" che in pratica costringe me a usare
sto coso che ha il 30% di funzionalita' rispetto a d un semplice cad3d , e
cotringe il programmatore del ax a fare modifiche al codice per venirmi in
contro , risultato ?
Salvo il programmatore e lo scambio col reparto commerciale ^_^

 mauser ? das maus ist genug, mit windovs.
pssss  java, tieni guarda qui : 
http://www.tatun.com/a/d-1025.htm
 pero' non
dire che te l'ho detto io ! ^_-

UAO!
FANTASTIC!
mi son comprato la statua di Era da mettere nel bagno....e l'armatura anti
testimoni di Genova!
aspett....e la spada del signore degli agnelli!??? la voglio!!!!
AAAAARRRRRRRGHHHHH!
SI LO VOGLIO!!!!!!!!!
ho comprato il cannone in grandezza naturale per il giardino!!!
Adesso dichiaro
Libero stato di Wodkolandia
Marcus Primo Dux Maximo
e come diceva il buon vate de curtis
"...est...est....est!"

 Eeee... non dovrebbe incontrare troppa resistenza, direi... ;-)
Non credo che funzioni. Il cervello sarą pure poco, ma la testa č durissima.
:-)
Ciao
*Roby*

 quanto Vb costruisca degli "accrocchi" piů che degli ocx...
A furia di prove ho imparato che il metodo piů sicuro di usare gli OCX
scritti in VB č includerne il sorgente nel programma.
Li aggiungi al tuo progetto direttamente in sorgente, e stai sicuro che
funzioneranno sempre, e che non avrai mai nessun problema di versioning, o
errore strano.
Ciao
*Roby*

 ha scritto nel messaggio>


 scritti in VB č includerne il sorgente nel programma.
Pensa che io invece a furia di prove*  ho imparato che il metodo
piů sicuro di usare gli OCX**  scritti in VB č... _non usarli_ ...  ;-P
ciao
ugo
* poche a dire il vero ma non credo che il risultato sarebbe cambiato...
** a dire il vero cerco di usare il minimo di ocx in assoluto,
    scritti in c, delphi  o html ( ;-P ) che siano!

 * poche a dire il vero ma non credo che il risultato sarebbe cambiato...
Io invece ne ho usati tantissimi. Inizialmente di terze parti, poi ho finito
per riscrivermeli quasi tutti io, dai più stupidi tipo la StatusBar e lo
Splitter, ad una Tlist con metodi grafici. Finora, includendoli nei
sorgenti, i problemi sono stati minimi. In caso di baco, ricompili l'intero
eseguibile e sei a posto.
Al momento l'unico di terze parti che continuo ad usare è una griglia della
FarPoint, ma chissà mai che in un futuro... :-)
Ciao
*Roby*

 per riscrivermeli quasi tutti io,
...ecco, questo č un approccio condivisibile.
In ogni caso, passino anche ocx di terzi (pochi, pochissimi...),
purchč siano effettivamenet strutturate e non semplicemente
"pippo rossi di bergamo", con buona pace del sig.rossi...
ciao
ugo

 errore strano.
magari si potesse fare : /

 :-)
********************************************
Siete dei malfidati, tutti e tre. E' tutto accuratamente calcolato.
Sparando in direzione dell'orecchio si evitano le parti piů dure delle
ossa craniali, perfino il relativamente leggero parietale, e si colpisce
la base del cervello, con il mesencefalo, il midollo allungato e/o il
cervelletto e tutti gli altri centri nervosi autonomi, che anche loro
devono utilizzare per sopravvivere, anche nelle loro condizioni.
Non sono mica scemo, non ho certo proposto di colpire gli
inutili(zzati) lobi frontali ;-))
P.S.: "Ciao Echelon, come va :-) ? Tutti bene in famiglia ?" (cit.)
Bye, G.

 inutili(zzati) lobi frontali ;-))
ploff...
j.

 ploff...
Pazzi ! SIAMO dei pazzi !
[Ot x Ot = sessantaquattr] x PAPERINO  :Allora sto caffe' ? Finalmente mi
hanno cambiato gli orari ora ho libero dalle 13 alle ~ 15 e esco la sera
alle 19:00

 alle 19:00
non sembra malaccio, dai, la vigilata.

 P.S.: "Ciao Echelon, come va :-) ? Tutti bene in famiglia ?" (cit.)
Bomba, Saddam, Bush. Mandiamo Echelon in overflow.
Ciao
*Roby*