REVISIÓN: Ocho o más archivos DLL de ActiveX compilado error causa en Project

Seleccione idioma Seleccione idioma
Id. de artículo: 192653 - Ver los productos a los que se aplica este artículo
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Expandir todo | Contraer todo

En esta página

Síntomas

Un grupo de proyecto de Visual Basic contiene al menos ocho proyectos de DLL ActiveX y un proyecto EXE estándar. El proyecto EXE estándar crea y libera los archivos DLL de ActiveX. El grupo de proyecto se compila en archivos DLL y EXE. Se ejecuta el archivo EXE.

La primera vez crear y liberar los archivos DLL de ActiveX, el programa se ejecuta correctamente. Sin embargo, la segunda vez que cree y lance los archivos DLL de ActiveX, un error de aplicación se produce y muestra el siguiente mensaje:
La instrucción en "0x6602c2c5 hace referencia a memoria en"0x010b008c". La Memoria no se puede "escribir".

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados al principio de este artículo.

Este error se corrigió en Visual Studio 6.0 Service Pack 3. Para obtener más información acerca de los service packs de Visual Studio, consulte en contacto con los artículos siguientes en Microsoft Knowledge Base:
194022Studio 6.0 Service Pack de información: Visual qué son, dónde están y por qué

194295Cómo: Saber que Visual Studio 6.0 Service Pack instalados

Más información

El error se produce sólo cuando los proyectos compilados se ejecutan fuera del IDE de Visual Basic. No se producirá el error cuando ejecute el proyecto mediante el IDE de Visual Basic.

Esta sección muestra cómo crear un proyecto de ejemplo que muestra el comportamiento de error. La sección se supone que está familiarizado con la creación de proyectos de DLL ActiveX, proyectos EXE estándar, grupos de proyecto y compilar estos archivos en un archivo ejecutable.

Pasos para reproducir este comportamiento

El proyecto de ejemplo contiene ocho proyectos de DLL de ActiveX que se utilizará en un proyecto EXE estándar. A continuación, se compila el proyecto EXE estándar en un archivo ejecutable. A continuación, se ejecuta el archivo ejecutable para demostrar el comportamiento de error.

Para crear los proyectos de DLL ActiveX ocho:
  1. Inicie un nuevo proyecto DLL ActiveX en Visual Basic. Class1 se crea de forma predeterminada.
  2. Copie el código siguiente a la ventana de código de la Class1:
    Option Explicit
          Public Sub DoNothing()
    
          End Sub
    					
  3. Guardar este módulo de clase como Class1.cls y este proyecto como Project1.vbp.
  4. Agregar otro proyecto de DLL ActiveX al grupo de proyecto. Class1 se crea de forma predeterminada. Quite el módulo de clase Class1 este proyecto y agregar el módulo de clase Class1 que creó para Project1.vbp a la DLL ActiveX nuevo proyecto.
  5. Guardar este proyecto como Project2.vbp.
  6. Repita los pasos 4 y 5 para agregar seis otros proyectos de DLL de ActiveX con el mismo módulo de clase Class1 al grupo de proyectos. Guarde estos proyectos como Project3.vbp mediante Project8.vbp.

    Acaba de crear un grupo de proyecto con ocho proyectos de DLL ActiveX guardados como Project1.vbp para Project8.vbp. Cada proyecto de DLL ActiveX hace referencia el mismo módulo de clase Class1 creado en Project1.vbp.

    El siguiente paso es crear un proyecto EXE estándar que utiliza los ocho proyectos de DLL ActiveX.
Para crear el proyecto EXE estándar:
  1. Agregar un nuevo proyecto EXE estándar al mismo grupo de proyecto que contiene los proyectos de DLL ActiveX ocho. Se creará Form1 de manera predeterminada.
  2. Agregue un CommandButton a Form1.
  3. Copie el código siguiente a la ventana código del formulario Form1:
    
          Option Explicit
    
          Private Sub Command1_Click()
             Dim o(8) As Object
             Dim i As Integer
             Dim strProgID As String
    
             For i = 1 To 8
                strProgID = "Project" & i & ".Class1"
                Set o(i) = CreateObject(strProgID)
                o(i).donothing
                Set o(i) = Nothing
             Next
             MsgBox "Done"
          End Sub
    					
  4. Guarde el proyecto como Project9.vbp.
  5. Establecer Project9.vbp como el proyecto de inicio. En el explorador del proyecto, haga clic con el botón secundario del mouse en Project9.vbp y, a continuación, haga clic en establecer como inicio. Project9.vbp aparece en negrita en el Explorador de proyectos.
  6. Presione la tecla F5 para empezar a ejecutar el proyecto en el IDE. Haga clic en Command1 el botón en Form1 varias veces y tenga en cuenta que funciona correctamente.
  7. Compile el grupo de proyecto.
  8. Ejecute Project9.exe fuera del IDE. Aparece el formulario Form1. Haga clic en Command1. Aparece un cuadro de mensaje. Haga clic en Aceptar para cerrar el cuadro de mensaje. Vuelva a hacer clic en Command1. Observe que se produce un error de aplicación y que muestra el siguiente cuadro de mensaje:
    La instrucción en "0x6602c2c5 hace referencia a memoria en"0x010b008c". La Memoria no se puede "escribir".

Propiedades

Id. de artículo: 192653 - Última revisión: sábado, 22 de febrero de 2014 - Versión: 2.1
La información de este artículo se refiere a:
  • Microsoft Visual Basic 6.0 Edición de aprendizaje
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
Palabras clave: 
kbnosurvey kbarchive kbmt kbbug kbdll kbfix kbide kbvs600sp1fix kbvs600sp2fix kbvs600sp3fix KB192653 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 192653

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com