Artigo: 200034 - Última revisão: quinta-feira, 1 de Julho de 2004 - Revisão: 2.1

Como depurar um servidor de fora de processo do Visual Basic com o Visual C++

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Reduzir tudo

Sumário

Depurar servidores fora do processo utilizando o depurador Microsoft Visual C++ requer um conjunto diferente mais do que a depuração dentro do processo os servidores (DLLs e OCXs). Este artigo demonstra como depurar um componente de servidor out-of-process ActiveX do Visual Basic utilizando o depurador Microsoft Visual C++.

Para obter informações adicionais sobre a depuração do Visual Basic-processo de servidores, bem como executáveis padrão, utilizando o depurador do Visual C++, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
166275  (http://support.microsoft.com/kb/166275/EN-US/ ) Como depurar um componente do Visual Basic de código nativo no VC ++

Mais Informação

Os dois primeiros das seguintes quatro secções descrevem como a aplicação de servidor do ActiveX do Visual Basic (activex.exe) e a aplicação de cliente do Visual Basic (standard.exe) podem ser criados. A terceira secção fornece os passos para depurar a aplicação de servidor ActiveX e a aplicação cliente através do depurador do Visual C++. A secção final fornece mais informações nas opções de linha de comandos para iniciar um servidor de fora de processo.

Criar o servidor de demonstração

  1. Inicie o Visual Basic, crie um novo projecto EXE ActiveX e, em seguida, mude o nome do projecto para DemoSvr.
  2. Adicione o seguinte código à classe predefinida (Aula1):
    Dim strProp As String
    Public Property Let StringProp(s As String)
        strProp = s
    End Property
    Public Property Get StringProp() As String
       StringProp = strProp
    End Property
    					
  3. No menu projecto , seleccione DemoSvr propriedades e, em seguida, mude para o separador de compilação . Certifique-se de que compilar código nativo , Criar informações de depuração simbólicas e Optimização não estão seleccionadas.
  4. Guarde e compilar o projecto para criar DemoSvr.exe.

Criar o cliente de demonstração

  1. Inicie o Visual Basic, crie um projecto EXE padrão e, em seguida, mude o nome do projecto para DemoCli.
  2. No menu Project , seleccione References .
  3. Localizar e verificar DemoSvr e certifique-se que é aponta para o ficheiro DemoSvr.exe apenas incorporado. Clique em OK .
  4. Adicione um controlo CommandButton ao formulário predefinido (Form1).
  5. Adicione o seguinte código ao módulo do Form1:
    Private Sub Command1_Click()
        Dim objServer As New DemoSvr.Class1
        objServer.StringProp = "Test"
        Command1.Caption = objServer.StringProp
        Set objServer = Nothing
    End Sub
    					
  6. Se pretender depurar o cliente também, defina as opções de compilação para DemoCli ser as mesmas que as a DemoSvr. Para tal, no menu projecto , seleccione DemoCli propriedades e, em seguida, mudar para a compilação separador. Certifique-se que compilar código nativo , Criar informações de depuração simbólicas , e Optimização não estão seleccionados.
  7. Guarde e compilar o projecto para criar DemoCli.exe.

Depurar o programa de configuração

  1. Inicie o Visual C++ (msdev.exe).
  2. Abrir DemoSvr.exe como uma área de trabalho ou um ficheiro (Abrir como automático).
  3. Abra os Class1.cls pontos de ficheiro e coloque quebra nas linhas apontadas por setas apresentadas da seguinte forma. (Coloque o cursor na linha e prima a tecla F9.)
          Public Property Let StringProp(s As String)
    ==>     strProp = s
          End Property
          Public Property Get StringProp() As String
    ==>      StringProp = strProp
          End Property
    					
  4. No menu Project , seleccione definições .
  5. No separador de depuração em argumentos de programa, escreva / incorporação .

    Nota : para obter mais informações sobre o / incorporar argumento, consulte a secção "Linha de comandos argumentos para o Local Servers".
  6. Prima a tecla F5 para iniciar o servidor. Neste ponto, DemoSvr.exe seriam carregados e aguardar quaisquer ligações de clientes potenciais.
  7. Inicie o DemoCli.exe e clique em Command1 para iniciar a depuração. Nota que premir o strProp = s ponto de interrupção.
Em alternativa, pode iniciar o servidor pela primeira vez e, em seguida, anexar o depurador-lhe como é mostrado abaixo:
  1. Iniciar DemoSvr.exe a partir da linha de comandos escrevendo demosvr / incorporar .

    Quando tiver executado este comando, pode ver que DemoSvr.exe está carregado no Gestor de tarefas do mesmo sem qualquer processo de cliente em execução.
  2. Inicie o Visual C++ (msdev.exe).
  3. Abra Class1.cls e coloque os pontos de interrupção como antes.
  4. No menu criar , seleccione Iniciar Debug e, em seguida, escolha anexar para execução .
  5. Seleccione DemoSvr na lista de processo.
  6. Execute DemoCli.exe como mostrado.
Se pretende depurar bem o cliente, terá de iniciar outra instância do Visual C++ (msdev.exe) da seguinte forma:
  1. Inicie o Visual C++ e carregar o módulo de classe como mostrado no passo anterior e o servidor. Coloque os pontos de interrupção.
  2. Inicie uma nova instância do Visual C++ (msdev.exe).
  3. Abrir DemoCli.exe como uma área de trabalho.
  4. Abrir Form1.frm e, em seguida, coloque pontos de interrupção nos locais pretendidos.
  5. Prima a tecla F5 para iniciar o cliente. Utilize a tecla F10 para passar através de uma linha e a tecla F11 para passar para uma chamada.

Argumentos de linha de comandos para servidores de locais

Existem três opções de linha de comandos para iniciar um servidor de fora de processo:
  • /regserver - indica ao servidor para registar automaticamente e a biblioteca de tipos associados.

  • /Unregserver - indica ao servidor para anular o registo propriamente dito e respectivas entradas da biblioteca de tipo associado.

  • / incorporar - mantém o servidor out-of-process na memória a aguardar que o primeiro cliente ligar. De facto, COM serviços transmite este argumento para um servidor out-of-process quando tenta iniciá-la.

Referências

Para obter informações adicionais sobre a depuração componentes ActiveX de Visual Basic no VC ++, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
166275  (http://support.microsoft.com/kb/166275/EN-US/ ) Como depurar um componente do Visual Basic de código nativo no VC ++
Também poderá pretender observar o capítulo 5 "Inside OLE" por Kraig Brokschmidt, da Microsoft Press.

A informação contida neste artigo aplica-se a:
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
Palavras-chave: 
kbmt kbhowto KB200034 KbMtpt
Tradução automáticaTraduçã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: 200034  (http://support.microsoft.com/kb/200034/en-us/ )