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

Traduções deste artigo Traduções deste artigo
ID do artigo: 192653 - Exibir os produtos aos quais esse artigo se aplica.
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

Um grupo de projeto do Visual Basic contém pelo menos oito projetos DLL ActiveX e um projeto EXE padrão. O projeto Standard EXE cria e libera os arquivos DLL ActiveX. O grupo de projeto é compilado em arquivos DLL e EXE. O arquivo EXE é executado.

Na primeira vez que criar e liberar os arquivos DLL ActiveX, o programa é executado com êxito. No entanto, na segunda vez que você cria e liberar os arquivos DLL ActiveX, um erro de aplicativo ocorre e exibirá a seguinte mensagem:
A instrução em "0x6602c2c5 consultou a memória em"0x010b008c". A Memória não pôde ser "gravada".

Situação

A Microsoft confirmou que esse é um problema nos produtos da Microsoft listados no começo deste artigo.

Esse bug foi corrigido no Visual Studio 6.0 Service Pack 3. Para obter 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, What, WHERE, por que

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

Mais Informações

O erro ocorre somente quando os projetos compilados são executados fora do IDE do Visual Basic. O erro não ocorre quando você executa o projeto por meio do IDE do Visual Basic.

Esta seção mostra como criar um projeto de exemplo que demonstra o comportamento de bug. A seção pressupõe que você está familiarizado com criação de projetos DLL ActiveX, padrão EXE projetos, grupos de projeto e compilar esses arquivos em um arquivo executável.

Etapas para reproduzir o problema

O projeto de exemplo contém oito projetos DLL ActiveX que serão usados em um projeto Standard EXE. O projeto Standard EXE, em seguida, é compilado em um arquivo executável. O arquivo executável é executado, em seguida, para demonstrar o comportamento de bug.

Para criar os oito projetos DLL ActiveX:
  1. Inicie um novo projeto ActiveX DLL no Visual Basic. Class1 é criado por padrão.
  2. Copie o código a seguir para a janela Code do Class1:
    Option Explicit
          Public Sub DoNothing()
    
          End Sub
    					
  3. Salve este módulo de classe como este projeto como Project1.vbp e Class1.cls.
  4. Adicione outro projeto ActiveX DLL ao grupo de projeto. Class1 é criado por padrão. Remova o módulo de classe Class1 esse projeto e adicionar o módulo de classe Class1 criado para Project1.vbp para a nova DLL ActiveX projeto.
  5. Salve este projeto como Project2.vbp.
  6. Repita as etapas 4 e 5 para adicionar seis outros projetos DLL ActiveX com o mesmo módulo classe Class1 ao grupo de projeto. Salve como Project3.vbp através de Project8.vbp esses projetos.

    Você acabou de criar um grupo de projeto com oito projetos DLL ActiveX salvos como Project1.vbp para Project8.vbp. Cada projeto ActiveX DLL faz referência o mesmo módulo de classe Class1 criado no Project1.vbp.

    A próxima etapa é criar um projeto Standard EXE que usa os projetos ActiveX DLL oito.
Para criar o projeto Standard EXE:
  1. Adicione um novo projeto Standard EXE a mesmo grupo de projeto que contém os projetos DLL ActiveX oito. O Form1 é criado por padrão.
  2. Adicione um CommandButton ao Form1.
  3. Copie o código a seguir para a janela código 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. Salve o projeto como Project9.vbp.
  5. Defina Project9.vbp como projeto de inicialização. No Explorador de projeto, clique com o botão direito do mouse Project9.vbp e, em seguida, clique em Definir como iniciar backup. Project9.vbp aparece em negrito no Explorador de projeto.
  6. Pressione a tecla F5 para iniciar executar o projeto no IDE. Clique no Command1 botão no Form1 várias vezes e observe que ele funcione corretamente.
  7. Compile o grupo de projeto.
  8. Execute Project9.exe fora do IDE. O formulário de Form1 aparece. Clique em Command1. Será exibida uma caixa de mensagem. Clique em OK para fechar a caixa de mensagem. Clique em Command1 novamente. Observe que um erro de aplicativo ocorre e exibe a seguinte caixa de mensagem:
    A instrução em "0x6602c2c5 consultou a memória em"0x010b008c". A Memória não pôde ser "gravada".

Propriedades

ID do artigo: 192653 - Última revisão: sábado, 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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes 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