CORRECÇÃO: Oito ou mais DLL de ActiveX em compilado Project causa erro

Traduções de Artigos Traduções de Artigos
Artigo: 192653 - Ver produtos para os quais este artigo se aplica.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Um grupo de projectos do Visual Basic contém, pelo menos, oito projectos de DLL de ActiveX e um projecto EXE padrão. O projecto EXE padrão cria e disponibiliza ficheiros DLL de ActiveX. Grupo de projectos é compilado no ficheiros DLL e EXE. Ficheiro EXE é executado.

A primeira vez que cria e libertar os ficheiros DLL de ActiveX, o programa executa com êxito. No entanto, a segunda vez que cria e libertar os ficheiros DLL de ActiveX, um erro de aplicação ocorre e apresenta a seguinte mensagem:
A instrução no "0x6602c2c5 referenciou a memória no"0x010b008c". A Memória não foi possível "escrever".

Ponto Da Situação

A Microsoft confirmou que este erro ocorre nos produtos da Microsoft listados no início deste artigo.

Este erro foi corrigido no Visual Studio 6.0 Service Pack 3. Para mais informações sobre service packs do Visual Studio, consulte os seguintes artigos na base de dados de conhecimento da Microsoft:
194022INFO: Visual Studio 6.0 Service Packs, que, em que, por que razão

194295COMO: Determinar se o Visual Studio 6.0 Service Packs estão instalados

Mais Informação

O erro ocorre apenas quando os projectos compilados são executados fora IDE do Visual Basic. O erro não ocorre quando executa o projecto através do IDE do Visual Basic.

Esta secção mostra como criar um projecto de exemplo que demonstra o comportamento de erro. A secção pressupõe que está familiarizado com criação de projectos de DLL de ActiveX projectos EXE padrão, grupos de projectos e compilar estes ficheiros para um ficheiro executável.

Passos para reproduzir o comportamento

O projecto de exemplo contém oito projectos ActiveX DLL que serão utilizados um projecto EXE padrão. Projecto EXE padrão, em seguida, for compilado num ficheiro executável. O ficheiro executável é então executado para demonstrar o comportamento de erro.

Para criar os oito projectos de DLL de ActiveX:
  1. Inicie um novo projecto ActiveX DLL no Visual Basic. Aula1 é criado por predefinição.
  2. Copie o código seguinte para a janela Code do Aula1:
    Option Explicit
          Public Sub DoNothing()
    
          End Sub
    					
  3. Guarde este módulo de classe como Class1.cls e este projecto como Project1.vbp.
  4. Adicione outro projecto DLL de ActiveX ao grupo de projecto. Aula1 é criado por predefinição. Remova o módulo de classe Aula1 este projecto e adicionar o módulo de classe Aula1 criado para Project1.vbp para a DLL de ActiveX novo projecto.
  5. Guarde este projecto como Project2.vbp.
  6. Repita os passos 4 e 5 para adicionar seis outros projectos de DLL de ActiveX com o módulo de classe Aula1 mesmo grupo de projectos. Guarde estes projectos como Project3.vbp através de Project8.vbp.

    Acabou de criar um grupo de projecto com oito projectos ActiveX DLL guardados como Project1.vbp para Project8.vbp. Cada projecto ActiveX DLL referencia o mesmo módulo de classe Aula1 criado Project1.vbp.

    O passo seguinte consiste em criar um projecto EXE padrão que utiliza os oito projectos de DLL de ActiveX.
Para criar o projecto EXE padrão:
  1. Adicione um novo projecto EXE padrão ao grupo de projecto mesmo com os projectos de DLL de ActiveX oito. É criado o Form1 por predefinição.
  2. Adicione um CommandButton ao Form1.
  3. Copie o seguinte código para a janela Code do formulário 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 o projecto como Project9.vbp.
  5. Defina Project9.vbp como iniciar o projecto. No Explorador de projecto, clique com o botão direito do rato Project9.vbp e clique em estabelecer como Start Up. Project9.vbp aparece em negrito no Explorador de projecto.
  6. Prima a tecla F5 para começar a executar o projecto no IDE. Clique no Command1 botão no Form1 várias vezes e repare que funciona correctamente.
  7. Compile o grupo de projecto.
  8. Execute Project9.exe fora de IDE. Aparece o formulário Form1. Clique em Command1. É apresentada uma caixa de mensagem. Clique em OK para fechar a caixa de mensagem. Clique novamente em Command1. Tenha em atenção que um erro de aplicação ocorre e apresenta a seguinte caixa de mensagem:
    A instrução no "0x6602c2c5 referenciou a memória no"0x010b008c". A Memória não foi possível "escrever".

Propriedades

Artigo: 192653 - Última revisão: 22 de fevereiro de 2014 - Revisão: 2.1
A informação contida neste artigo aplica-se a:
  • Microsoft Visual Basic 6.0 Learning Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
Palavras-chave: 
kbnosurvey kbarchive kbmt kbbug kbdll kbfix kbide kbvs600sp1fix kbvs600sp2fix kbvs600sp3fix KB192653 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 192653

Submeter comentários

 

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