Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Versione errata della DLL di run-time.

Ho un problema che dovrei risolvere urgentemente.
Utilizzo un SW dotato di linguaggio di programmazione proprietario che
consente di lanciare EXE esterni tramite un comando "runtask NomeProgramma".
Se provo a lanciare un mio programma VB5 compilato, ricevo il seguente
messaggio:
"Versione errata della DLL di run-time".
Notare che l'EXE funziona benissimo se lo lancio col doppio clic o con la
riga di comando di Windows.
La guida di VB5 dice:
"Non è stato trovato il file Vbrun500.dll oppure è stata trovata una
versione non corretta dei file ocx dei controlli ActiveX. Verificare che
nella directory \System o \System32 sia installata una sola copia di questi
file, ovvero l'ultima versione."
Il fatto è che non utilizzo ActiveX, ma soprattutto VB5 non installa nessuna
dll con quel nome!!! Nemmeno se installo il SP3 di VB5! Nemmeno
l'installazione del runtime di VB installa quel file.
Come risolvere il problema?



Credo sia un errore del SW (non del tuo programmino): infatti i "VBRUN" si sono fermati alla 400: da
VB5 in poi le VM si chiamano MSVBVMX00.DLL dove X è la versione di VB.
Ciao,
Moreno
#sirri#@#morenosoft#.com
(togliete "#" dall'indirizzo)
Moreno Sirri VB Site - 
http://www.morenosoft.com/MSVBSite/
---------------------------------------------------------------------------
Le risposte alle tue domande le trovi sul Sito Comune di questo NewsGroup:
 
http://www.murialdo.it/it_lang_vb
---------------------------------------------------------------------------

 VB5 in poi le VM si chiamano MSVBVMX00.DLL dove X è la versione di VB.
Però il messaggio di errore è di VB!!!
Infatti è anche contemplato dalla guida!
Allora perchè la guida parla di una dll che non è mai stata realizzata?
I soliti misteri di M$?
Non c'è soluzione?

 Non c'è soluzione?
lo so che e' stupido, ma tentar...
fa' una copia della msvbvm50 in vbrun500.
magari quando hanno scritto la guida e la funzione di shell il nome era
quello :))
se funziona mi do' 500 martellate in testa.

 se funziona mi do' 500 martellate in testa.
Lunedě ti saprň dire se ti devi martellare.......
:o)

 quello :))
non può funzionare perché l'exe fatto in VB importa le funzioni che gli
servono da una DLL che deve _per forza_ chiamarsi MSVBVMX0.DLL... infatti,
nel caso non ci sia, il messaggio d'errore è chiarissimo: "Impossibile
trovare il file msvbvmx0.dll" (o qualcosa del genere...)
Ciao
Faber

 ha scritto

ci ripensavo ieri in tutt'altra situazione e mi ero detto che il messaggio
doveva essere "impossibile trovare vbrun300.dll".
se dice vbrun500.dll gradirei uno snap del msgbox.


Sai che ti dico?
Che lo snap non te lo posso fare perchč..... ho risolto l'arcano!
Il problema dipendeva dalla presenza contemporanea nel sistema di due copie
di msvbvm50.dll, di cui una nella cartella C:\WinNT\System32 ed un'altra
nella cartella del programma che mi doveva avviare l'exe realizzato con VB.
Infatti se guardi la guida di vb alla voce "Versione errata della DLL di
run-time" troverai:
"Non č stato trovato il file Vbrun500.dll oppure č stata trovata una
versione non corretta dei file ocx dei controlli ActiveX. Verificare che
nella directory \System o \System32 sia installata una sola copia di questi
file, ovvero l'ultima versione."
Evidentemente il messaggio vale per la virtual machine di VB in generale,
indipendentemente dal suo nome.
Ciao e grazie comunque.
PS
Rinominare la dll non serve a nulla.