2011-12-20 170 views
12

me he dado cuenta de que casi todas tercera vez o por lo que la puesta en marcha del IDE de VB6, un cuadro de mensaje aparece con el mensaje de error siguiente: -"Método '~' del objeto '~' error" en el arranque IDE de VB6

Method '~' of object '~' failed 

Esto no sucede para ningún proyecto en particular o con cualquier otra cosa en común que haya notado. No aparece para causar problemas después de cerrar el mensaje. Mi pregunta es: debería preocuparme por esto, y si es así, ¿qué debo hacer al respecto?

He notado estas otras preguntas sobre el mismo mensaje de error here, here y here, pero recibo el mensaje sobre la apertura del proyecto.

+4

¿Tiene algún complemento habilitado? - podría valer la pena tratar de deshabilitar los inusuales que tiene en caso de que haya un problema allí. –

+0

@JonEgerton, sí tengo. Gracias por el consejo; Voy a intentar eso. –

Respuesta

3

Solía ​​ocasionalmente encontrarme con este error y, en mi caso, fue causado por el complemento Visual Source Safe (mal instalación, supongo, la reinstalación corrigió el problema). Nunca causó un problema; solo fue una molestia. Como dijo Jon en los comentarios, trataría de cerrar los complementos para ver si eso soluciona el problema. Otra cosa es asegurarse de que está ejecutando el Service Pack 6.

+0

Gracias; era un complemento, lo que significa que no tengo que preocuparme por eso. –

3

Esto generalmente es causado por el portapapeles bloqueado en la máquina local. Los complementos IDE de VB6 usan el portapapeles para copiar/pegar iconos en los botones de la barra de herramientas porque la API de complemento no expone ninguna otra forma de poner una imagen allí.

Normalmente, el cliente de escritorio remoto (mstsc.exe) es el culpable del portapapeles bloqueado. La forma en que Microsoft implementó la transferencia al portapapeles remoto es probando el portapapeles local para encontrar los formatos disponibles que lo bloquean por un tiempo. El portapapeles es un recurso global terriblemente diseñado al que se puede acceder mediante un solo proceso a la vez y la API OpenClipboard falla en llamas para otros procesos si el recurso no está disponible actualmente.

1

Desinstalé Visual Studio 6.0 y luego lo reinstalé. Esto borró el error "Método" ~ "de objeto" ~ "error". Mi VB 6 ahora parece estar funcionando correctamente. Creo que, en mi caso, tiene que ver con varios de los objetos COM que no están registrados correctamente. Mi nueva máquina recibió una imagen fantasma de mi vieja caja que tenía VS en ella.

1

Comencé a recibir este error de repente en mis dos máquinas de desarrollo (una de 32 bits, la otra de 64 bits). En mi búsqueda de una solución, alguien hizo una referencia tangencial a SourceSafe.

Ahh, entonces se me ocurrió que había estado limpiando recientemente un proyecto (borrando archivos .bak, etc.), y uno de los archivos que limpié fue 'MSSCCPRJ.SCC' (viendo cómo SourceSafe fue, para nuestro grupo, una reliquia lejana, me sentí "seguro" eliminando este archivo de la carpeta del proyecto).

Resumen breve: la restauración del archivo 'MSSCCPRJ.SCC' en la carpeta del proyecto resolvió este error.

1

Acabo de encontrar este error al ejecutar VB6 en Windows Server 2012 R2. El complemento ofensivo era Visual Component Manager 6.0. Una vez que deshabilité eso, el IDE pudo abrir sin el problema Method '~' of object '~' failed. No estoy seguro de si eso apunta a un problema de instalación o solo software "antiguo" en un sistema operativo "moderno".

Para cualquier otra persona que intente instalar VB6 en Windows 7, 8, 10, 2012, etc., Aquí hay algunos enlaces útiles:

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

No sé acerca de este error específico, pero tengo algo de información acerca de este mensaje de error.

COM define dos niveles de información de error. Todos los métodos y propiedades COM tienen un valor de retorno con el tipo HRESULT, donde 0 (S_OK) indica éxito y los valores negativos indican un error. Además, hay un mecanismo para proporcionar la llamada "rica información de error".

Si un objeto COM genera abundante información de error, VB6 mostrará la información provista. Si un objeto COM devuelve un valor negativo, pero no proporciona información rica sobre el error, entonces VB6 muestra el mensaje "Método '~' del objeto '~' fallido".

Existen algunos códigos de error estándar como E_POINTER y E_NOTIMPL que a menudo son devueltos por objetos COM en C++. Todo esto da como resultado el mensaje "Método '~' del objeto '~' fallido".

Si está implementando un objeto COM en C++, mi consejo es generar siempre información abundante sobre errores. (En ATL solo tiene que llamar a la función Error.)

Cuestiones relacionadas