)( parentesys.es )( La cultura al alcance de todos )
Compartir

 Portada   Foros y Debates   Foro de Informática
Publicado el día 13/11/2002 00:11:00 por ojcar

Visual Basic, COM y COM


 








  

  • Pregunta sobre compomentes
  • Responder a esta opinión
    (pakitoi
       Cuando desarrollo un compomente en VB, ejemplo una dll para usar en una pagina ASP con interdev tengo el siguiente problema: Resulta que si quiero compilar de nuevo no puedo ni cerrando el interdev ni parando el iis, tengo que reiniciar alguien puede decirme que estoy haciendo mal.Quien bloquea esa dll y la protege para que yo no pueda compilar de nuevo.
      

    - Re:Pregunta sobre compomentes   Responder a esta opinión
    (ojcar
       Lo que te está pasando es que la referencia del componente se te está quedando bloqueada. Para evitar este problema puedes seguir los siguientes pasos: (supongo que tienes Windows 2000 y que estás compilando y registrando los componentes en local) Cierra todas las ventanas de Internet Explorer que tengas abiertas con la aplicación que llama al componente. Desde el Servicio de componentes, seleccionas el paquete de la aplicación donde tienes registrada la DLL y le das al botón derecho del ratón. Ahí te aparecera algo como Cerrar el Sistema. Con esto terminas la ejecución de los procesos de la aplicación. Verás que los iconos dejan de moverse. Si aun así no te deja recompilar el componente desde Visual Basic abre el Administrador de Tareas y vete a Procesos. Busca todos los procesos llamados dllhost.exe y termínalos. Algunos de ellos no te dejará terminarlos pero otros sí. Si aun así sigues sin recompilar, otra solución es abrir el IIS, y darle a las propiedades del directorio virtual donde tienes tu aplicación web. En la pestaña de Directorio virtual puedes seleccionar en qué espacio de memoria quieres ejecutar tu aplicación. Selecciona que se ejecute en un proceso aislado, y luego le das al botón Descargar. Con esto limpias el espacio de ejecución de la aplicación. Ya debería dejarte recompilar. Si todavía no lo consigues, cierra el Interdev, y el Visual Basic, Luego vuelve a abrir el proyecto de visual Basic para recompilar. Si no te deja, tendrás que reiniciar. Espero que te funcione, desde que sigo estos pasos he tenido que reiniciar muy pocas veces. Saludos
      

         - Re:Re:Pregunta sobre compomentes   Responder a esta opinión
    (pakitoi
       Gracias, experto.
      

              - Re:Re:Re:Pregunta sobre compomentes   Responder a esta opinión
    (ojcar
       te ha funcionado? pues me lo he inventado todo , eh? jejejee

      

  • Compatibilidad de versión en Visual Basic
  • Responder a esta opinión
    (ojcar
      

    Compatibilidad de versión:Indica a Visual Basic como gestionar el identificador único de cada componente(CLSID) en interfaz(IID)

    Sin compatibilidad:

    -Se generan nuevos identificadores GUID para las clases, las interfaces del componente, y para la biblioteca de tipos. El componente es incompatible con aplicaciones compiladas utilizando EARLY BINDING. O sea, usando NEW. Si queremos que sea compatible, debemos crear los componentes con CreateObject.

    Compatibilidad de Proyecto:

    -Se generan nuevos identificadores GUID para las clases, pero no para la biblioteca de tipos.

    -Para que esta opción funcione hay que suministrar la ruta del archivo DLL compilado.

    -Cuando se compila el proyecto, VB reutiliza el GUID de la biblioteca de tipos y los identificadores CLSID y IID si no se ha cambiado la interfaz de las clases.

    Compatibilidad binaria:

    -VB tratará de mantener la compatibilidad con las versiones anteriores del componente y advierte de los cambios. Si hay cambios podemos...

    1. Cancelar la compilación.
    2. Quebrar la compatibilidad:VB crea nuevos identificadores GUID para la biblioteca de tipos y para todas las clases e interfaces. Al quebrar la compatibilidad podemos:
    • cambiar el nombre del proyecto, que será el nombre de la biblioteca de tipos, y cambiar el nombre del EXE o DLL que estamos compilando. Con esta opción mantenemos la versión más antigua y la más nueva del componente. Los clientes antiguos pueden seguir funcionando.
    • No cambiar los nombres: VB genera un nuevo componente que hereda el CLSID del componente antiguo, salvo los interfaces con definiciones incompatibles. Con esto mantenemos la compatibilidad con los clientes que no usan la interfaz problemática. Se recomienda cambiar los nombres del proyecto y del ejecutable o DLL.
    1. Mantener la compatibilidad con las versiones anteriores: VB reutilizará todos los identificadores GUID del componente anterior, incluso aunque los clientes existentes no puedan funcionar con la nueva versión. Si se elimina un módulo de clase esta opción no está disponible.

     

     


      

  • Salvar una Imagen
  • Responder a esta opinión
    (pakitoi
       Me pregunto si alguien sabra como guardar una imagen desde un documento HTML cargado en un WebBrowser o en un DHTMLEdit a un fichero. Pero claro no con boton derecho guardar imagen como... sino por codigo
      

    - Re:Salvar una Imagen   Responder a esta opinión
    (ojcar
       Si sabes la ruta completa de la imagen, no tienes más que ponerla en la dirección del navegador y luego guardarla como...
      

    - Re:Salvar una Imagen   Responder a esta opinión
    (pakitoi
       Si pero eso requiere interacion del usuario y necesito hacerlo por codigo.
      

         - Re:Re:Salvar una Imagen   Responder a esta opinión
    (ojcar
       Te puedes crear un componente en Visual Basic que te grabe las imágenes que seleccionas.




        ¡ya somos 347 usuarios registrados!    


       





       Esta web se activó en Noviembre de 2002 :: desarrollada por parentesys.com con syrope press