2011-12-20 4 views
12

ho notato che circa ogni terza volta o almeno così mi avviare il VB6 IDE, una finestra di messaggio viene visualizzata con il seguente messaggio di errore: -"Metodo '~' dell'oggetto '~' non riuscito" a partire VB6 IDE

Method '~' of object '~' failed 

Questo non accade per nessun progetto particolare o con qualsiasi altra cosa in comune che ho notato. non appare per causare problemi dopo aver chiuso il messaggio. La mia domanda è: dovrei preoccuparmi di questo, e se sì, cosa dovrei fare al riguardo.

Ho notato queste altre domande sullo stesso messaggio di errore here, here e here, ma ottengo il messaggio di apertura del progetto.

+4

Hai qualche addins abilitato? - potrebbe valere la pena provare a disabilitare quelli inusuali che hai in caso di problemi. –

+0

@JonEgerton, sì, ho. Grazie per il consiglio; Ci proverò. –

risposta

3

Mi sono imbattuto occasionalmente in questo errore e, nel mio caso, è stato causato dal componente aggiuntivo Visual Source Safe (installazione errata, suppongo, reinstallare il problema risolto). Non ha mai causato un problema; era solo un fastidio. Come Jon ha dichiarato nei commenti, proverei a disattivare i componenti aggiuntivi per vedere se questo risolve il problema. Un'altra cosa è assicurarsi di eseguire Service Pack 6.

+0

Grazie; era un add-in, il che significa che non devo preoccuparmene. –

3

Ciò è causato in genere dagli Appunti bloccati sulla macchina locale. I componenti aggiuntivi IDE VB6 utilizzano gli appunti per copiare/incollare le icone sui pulsanti della barra degli strumenti perché l'API del componente aggiuntivo non espone nessun altro modo di inserire un'immagine.

In genere il client Desktop remoto (mstsc.exe) è il colpevole degli appunti bloccati. Il modo in cui Microsoft ha implementato il trasferimento negli Appunti remoti consiste nel cercare negli appunti locali i formati disponibili che li bloccano per un po '. Gli Appunti sono risorse globali progettate in modo intelligente a cui è possibile accedere da un singolo processo alla volta e l'API OpenClipboard non riesce a utilizzare le fiamme per altri processi se la risorsa non è attualmente disponibile.

1

Ho disinstallato Visual Studio 6.0 e quindi lo ho reinstallato. Questo ha cancellato l'errore "Metodo" ~ "dell'oggetto" ~ "non riuscito". Il mio VB 6 ora sembra funzionare correttamente. Credo che, nel mio caso, abbia a che fare con molti degli oggetti COM che non vengono registrati correttamente. La mia nuova macchina ha ricevuto un'immagine fantasma dalla mia vecchia scatola che aveva VS su di esso.

1

Ho iniziato a ricevere questo errore all'improvviso su entrambe le macchine di sviluppo (una a 32 bit, l'altra a 64 bit). Nella mia ricerca di una soluzione, qualcuno ha fatto un riferimento tangenziale a SourceSafe.

Ah, quindi mi è venuto in mente che recentemente stavo pulendo un progetto (cancellando file .bak, ecc.) E uno dei file che ho cancellato era "MSSCCPRJ.SCC" (vedendo come SourceSafe era - per il nostro gruppo - una reliquia lontana, mi sentivo "sicuro" rimuovendo questo file dalla cartella del progetto).

In breve: il ripristino del file "MSSCCPRJ.SCC" nella cartella del progetto ha risolto questo errore.

1

Mi sono imbattuto in questo errore durante l'esecuzione di VB6 su Windows Server 2012 R2. L'add-in offendente era Visual Component Manager 6.0. Una volta disabilitato, l'IDE è stato in grado di aprire senza il problema Method '~' of object '~' failed. Non sono sicuro che ciò indichi un problema di installazione o semplicemente un software "antico" su un sistema operativo "moderno".

Per chiunque altro voglia installare VB6 su Windows 7, 8, 10, 2012, ecc., Ecco alcuni link utili:

http://www.fortypoundhead.com/newbrowseresults.asp?catid=34

http://it.toolbox.com/blogs/locutus/how-to-install-visual-studio-6-onto-windows-10-70155

0

Non so su questo errore specifico, ma ho alcune informazioni su questo messaggio di errore.

COM definisce due livelli di informazioni di errore. Tutti i metodi e le proprietà COM hanno un valore di ritorno con il tipo HRESULT, dove 0 (S_OK) indica il successo e i valori negativi indicano un errore. Inoltre, esiste un meccanismo per fornire le cosiddette "informazioni sugli errori ricchi".

Se un oggetto COM genera informazioni ricche errore, VB6 mostrerà le informazioni fornite. Se un oggetto COM restituisce un valore negativo, ma non fornisce le informazioni sull'errore, quindi VB6 mostra il messaggio “Metodo '~' dell'oggetto '~' non riuscita”.

ci sono alcuni codici di errore standard come E_POINTER e E_NOTIMPL che sono spesso restituiti da oggetti COM in C++. Tutti questi risultati nel messaggio "Metodo '~' dell'oggetto" ~ "non riuscito".

Se si implementa un oggetto COM in C++, il mio consiglio è quello di generare sempre ricche informazioni di errore. (In ATL è sufficiente chiamare la funzione di errore.)