Pregunta Descargar un control COM cuando se trabaja en VB6 IDE


Parte de mi trabajo diario es mantener y extender las aplicaciones heredadas de VB6. Un motor común está escrito en C / C ++ y VB6 usa estas funciones para mejorar el rendimiento.

Cuando se trata de programación asincrónica, una interfaz C no es suficiente y confiamos en los controles COM para disparar eventos a VB6.

Mi problema es que cuando registro el control en VB6, VB carga este control en la memoria y no lo descarga hasta que salga del IDE VB6. Como el control está cargado todo el tiempo, no puedo volver a compilarlo en VC6, porque el archivo DLL está bloqueado.

Una solución que encontré es no habilitar el control en VB pero usar el CreateObject() con el nombre completo de mi control. El problema entonces es que debo declarar mi control como un Objeto porque VB6 no sabe nada de la interfaz que estoy usando y no tengo acceso a IntelliSense, lo cual es un problema.

¿Alguna idea de cómo puedo decirle a VB6 que descargue los controles después de salir de la aplicación o directamente en el IDE?


33
2017-08-02 11:52


origen


Respuestas:


Estoy bastante seguro de que no hay una buena manera de forzar a VB6 a descargar el control.

Esto es lo que hago ... en lugar de ejecutar Visual C y Visual Basic lado a lado, ejecute VB6 debajo VC:

  1. Cargue VC
  2. Abra el proyecto que contiene sus objetos COM
  3. Editar, cambiar, etc.
  4. En VC, configure el Ejecutable de salida para que sea VB6.EXE con los argumentos apropiados de la línea de comandos para cargar el espacio de trabajo VB6
  5. Ahora solo presiona F5 para iniciar el IDE VB6 y carga tu proyecto VB6
  6. Cuando desee volver a cambiar el código COM, salga de VB6.EXE, realice los cambios y vuelva a presionar F5. Siempre que guarde su espacio de trabajo, VB6 recordará qué ventanas tenía abiertas y todas las configuraciones de su proyecto.

Ventajas de este método:

  • Puede establecer puntos de interrupción en el objeto COM y depurarlo utilizando un depurador de fuente completa
  • Felizmente puedes depurar en C y VB al mismo tiempo
  • Cada vez que se ejecuta VB6, siempre tiene la última versión de los DLL COM

28
2017-08-20 03:58