Newsgroup: it.comp.lang.visual-basic
Titolo: [SOLVED] errore 430 / a futura memoria

ciao gente
il suggerimento di roberto (grazie! grazie! grazie!) è stato risolutivo.
riassumo quanto scoperto tramite il suo link.
se si installa visual basic 6 su Windows 7 SP1, l'SP1 sputtana in modo
pressoché irreparabile ADO. ovvero: carica una _sua_ versione di
msado28.tlb (e mi pare anche delle altre versioni) in C:\Program
Files\Common Files\System\ado
quindi se su compila il tuo programma su 7 SP1, può accadere che questo 
non vada più su XP.
per tornare a far funzionare la cosa, si devono rimettere su 7 SP1 le
versioni "vecchie" delle librerie .tlb. ovvero:
aprire REGEDIT e spostarti sulla chiave
LOCAL_MACHINE\SOFTWARE\Classes\TypeLib\{2A75196C-D9EB-4129-B803-931327F72D5C},
quindi impostare il proprietario della chiave ad Administrators (di
default è TrustedInstaller)
aprire la cartella C:\Program Files\Common Files\System\ado e impostare
il proprietario di tutti i file .tlb ad Administrators; quindi dare ad
Administrators il "controllo completo" su tutti questi file (non lo fa
di default, anche se sei il proprietario, vabbe)
DEREGISTRARE tutti i file .tlb con una serie di comandi composti così:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\regtlibv12 -u "C:\Program
Files\Common Files\system\ado\msadoXX.tlb" (dove XX è, in ordine: 20,
21, 25, 26, 27, 28)
copiare in C:\Program Files\Common Files\System\ado i file msadoX.tlb 
(20, 21 etc.) presi da un'installazione di Windows 7 _SENZA_ sp1
RIREGISTRARE tutti i file .tlb con una serie di comandi composti così:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\regtlibv12 "C:\Program
Files\Common Files\system\ado\msadoXX.tlb"
a questo punto, se si ricompila il programma, questo sarà in grado di
girare anche sotto XP.
ah, dimenticavo: la procedura viene meglio se tra un passo e l'altro
si pensa intensamente "microsoft fanculo"
:-)
ciao e grazie a tutti per l'aiuto
d.


Bene, sono contento che sia servito, non sapevo se quello era il tuo caso.
Tra qualche settimana dovro' mettere mano ad una vecchia app vb6 che 
gira su xp, perň per evitare di fare tutto il tuo 'percorso' penso che 
sfrutterň una installazione di vb6 che ho in una macchina virtuale xp o 
2003 server...
Io uso vmware ma se non sbaglio con win 7 pro o superiori si puo' 
installare XPMode che dovrebbe essere analogo, oltretutto senza aver 
bisogno di una licenza xp da installare nella macchina virtuale.
Ciao
Roberto

 licenza xp da installare nella macchina virtuale.
è tanto facile... senza sminchiare un'installazione di Windows 7 e 
senza mandare a fare in culo nessuno... :-)
.m
-- 
Mauro Servienti
{C67C0157-5D98-4733-A75E-93CAEE4BADC8}
Microsoft MVP - Visual C# / MCTS
http://mvp.support.microsoft.com/profile/mauro
blog @ 
http://milestone.topics.it
whynot [ at ] topics [ dot ] it

 senza mandare a fare in culo nessuno... :-)
una macchina virtuale per ogni ambiente di sviluppo.
fico.
quindi:
una per vb6
una per vs2010
una per vs2008 (perché se non erro M$ ha rimosso il supporto a Windows 
CE da vs2010... ma non c'è nessuno da mandare in culo, eh...)
poi
una per netbeans
osti, comodissimo! ho appena cambiato HD e mi chiedevo giusto come farò 
a riempirlo...
:-)))
cia'
d.

 poi una per netbeans
mai avuto problemi a farlo andare con il resto, del resto che ci 
azzecca?.
prima di criticare forse cercare di capire sarebbe più produttivo, fare 
gli spiritosi "a gratis" (come dicono dalle mie parti) poi potrebbe 
essere controproducente, ma ognuno è libero di fare quello che vuole 
quindi manda pure a fare in culo chi vuoi :-)


 quindi manda pure a fare in culo chi vuoi :-)
eh, quanta permalosità :-)
dai, non la insulto più, microsoft, ok? va meglio?
cia'
d.

 dai, non la insulto più, microsoft, ok? va meglio?
neanche un po' io insulto Microsoft ogni tre per due, solo che lo 
faccio su cose che ha senso e questa proprio non ha senso, sarebbe come 
prendersela con FIAT perchè non monta più i carburatori sulle macchine 
e io ne ho una scorta vitalizia in cortile... forse non è colpa di 
FIAT.


 senza sminchiare nulla.
ma non scherzare :-)
ci sono dozzilioni di progetti in essere, software di controllo di 
linee di produzione, interfacciamenti a database etc. etc. etc. che 
girano tranquilli da anni (a volte tanti, a volte pochi)... e io dovrei 
dire al cliente "aggiorna tutto perché ora esiste .net" ?
no, il mondo dell'industria ragiona in altro modo...
piuttosto, anche per progetti nuovi: hai idea (è un "per dire", lo so 
che ne hai idea) di quanto sia comodo, quando devi interfacciarti a 
macchine e sistemi esterni, poter lavorare in debug "vero", modificare 
al volo valori di variabili senza dover ricompilare e rieseguire tutto 
da capo, fare una "vera" esecuzione passo-passo... se .net mi riuscisse 
a offrire 'sta cosa -che vb6 mi offre senza nessun problema- ti 
assicuro che il porting di vecchi progetti ci penserei anche, ad 
affrontarlo...
oh, si vive anche col finto-debug di .net, eh... ma magari rischi di 
passare 3 ore in più per installazione, dai vari clienti...
cia'
d.

 ci penserei anche, ad affrontarlo...
Evito considerazioni sull'approccio che non condivido, ma sono gusti 
personali.
Comunque l'Edit & Continue c'è anche su .Net. Mi sa che tu non hai idea 
di cosa possa fare il debugger di VS, già dalla versione 2005, perchè 
quello di VB6 a confronto è un giocattolino.


 quello di VB6 a confronto è un giocattolino.
scusa, da quello che ho scritto si capisce una cosa diversa da quella 
che intendevo, manca un "piccolo" dettaglio che probabilmente ti farà 
inorridire, ma tant'è.
il problema nel lavorare con macchinacce e macchinone industriali (non 
ho idea di quale sia il tuo settore, per cui parto dal presupposto che 
*non* sia quello industriale).
in questo bel mondo, devi interfacciarti con N macchine. ciascuna delle 
quali ragiona -ovviamente- a modo suo. e spesso hai macchine dal 
protocollo "impegnativo" (leggi: documentato poco e male) con cui ti 
trovi ad avere a che fare direttamente dal cliente. macchine che 
qualcuno collega, magari tramite schede di I/O dedicate, ben prima 
dell'installazione del software.
e in molti di questi casi, la cosa ASSOLUTAMENTE più pratica è 
installare al volo una copia di vb6 direttamente sul PC del cliente, 
fare il debug direttamente sulla macchina, e poi disinstallare 
l'ambiente di sviluppo alla fine di tutto.
orrendo? forse. ma l'alternativa, spesso, non c'è.
e, ti assicuro, un paio di volte ho provato a farlo con vs2005 
(all'epoca c'era 2005), ma la strada non è praticabile. se non altro 
perché l'installazione di vb6 dura 5 minuti, quella di vs20XX ben di 
più. e poi, entrambe le volte che ho provato, ho avuto problemi a non 
finire in fase di disinstallazione finale.
ripeto: filosofia e teoria hanno il loro perché, le esigenze pratiche 
però talvolta la spuntano.
ciao
d.

 disinstallazione finale.
l'installazione di Vs2010 express nell'ultima VM su cui l'ho fatta 
pochi giorni fa è durata cira 15 minuti che mi sembrano un tempo 
decisamente ragionevole.
Per i problemi di disanstallazione, io non ne ho mai avuti, ma se non 
li dettagli difficile dire che a che cosa sono imputabili.
Ciao,
