ID do artigo: 200034 - Última revisão: quinta-feira, 1 de julho de 2004 - Revisão: 2.1

Como depurar um servidor de out-of-Process 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 | Recolher tudo

Sumário

Depuração servidores fora de processo usando o depurador do Microsoft Visual C++ requer um conjunto diferente até que depuração servidores em processo (DLLs e OCXs). Este artigo demonstra como depurar um componente de servidor fora de processo do Visual Basic ActiveX usando o depurador do Microsoft Visual C++.

Para obter informações adicionais sobre como depurar servidores de no processo do Visual Basic, bem como executáveis padrão, usando o depurador do Visual C++, clique no número abaixo para ler 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 código nativo no VC ++

Mais Informações

Os dois primeiros das quatro seções a seguir descrevem como o aplicativo de servidor do ActiveX do Visual Basic (activex.exe) e o aplicativo cliente do Visual Basic (standard.exe) podem ser criados. A terceira seção fornece as etapas para depurar o aplicativo do servidor ActiveX e o aplicativo de cliente por meio do depurador do Visual C++. A seção final fornece mais informações sobre as opções de linha de comando para iniciar um servidor fora de processo.

Criando o servidor de demonstração

  1. Inicie o Visual Basic, crie um novo projeto ActiveX EXE e, em seguida, renomeie o projeto para DemoSvr.
  2. Adicione o seguinte código à classe padrão (Class1):
    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 Project , selecione DemoSvr propriedades e, em seguida, alterne para a guia Compile Certifique-se que compila para código nativo , Criar informações de depuração simbólicos e Otimização não são selecionados.
  4. Salve e compile o projeto para criar DemoSvr.exe.

Criando o cliente de demonstração

  1. Inicie o Visual Basic, crie um projeto Standard EXE e, em seguida, renomeie o projeto para DemoCli.
  2. No menu Project , selecione References .
  3. Localizar e verificar DemoSvr e certifique-se de que ele está apontando para o arquivo DemoSvr.exe que você criou. Clique em OK .
  4. Adicione um controle CommandButton ao formulário padrão (Form1).
  5. Adicione o seguinte código para o 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 você deseja depurar o cliente também, defina as opções compilação para DemoCli ser as mesmas do DemoSvr. Para fazer isso, no menu Project , selecione DemoCli propriedades e, em seguida, alternar para a compilação guia e certifique-se que compila para código nativo , Criar informações de depuração simbólicos , e Otimização não são selecionados.
  7. Salve e compile o projeto para criar DemoCli.exe.

Instalação de depuração

  1. Inicie o Visual C++ (msdev.exe).
  2. Abrir DemoSvr.exe como um espaço de trabalho ou um arquivo (Abrir como automático).
  3. Abra os Class1.cls pontos de arquivo e local interrupção nas linhas de apontado por setas mostradas da seguinte forma. (Posicione o cursor na linha e pressione 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 , selecione configurações .
  5. Na guia Debug em argumentos de programa, digite / incorporação .

    Observação : para obter mais informações sobre o / incorporação argumento, consulte a seção "Linha de comando argumentos para local servidores".
  6. Pressione a tecla F5 para iniciar o servidor. Neste ponto, DemoSvr.exe seria carregado e esperando por conexões de cliente potencial.
  7. Inicie o DemoCli.exe e clique em Command1 para iniciar a depuração. Observe que você atingido o strProp = s ponto de interrupção.
Como alternativa, você pode iniciar o servidor primeiro e, em seguida, anexar o depurador a ele, como mostrado abaixo:
  1. Iniciar DemoSvr.exe a linha de comando digitando demosvr / incorporação .

    Depois que esse comando foi executado, você pode ver que DemoSvr.exe é carregado no Gerenciador de tarefas do mesmo sem qualquer processo do cliente em execução.
  2. Inicie o Visual C++ (msdev.exe).
  3. Abra Class1.cls e colocar seus pontos de interrupção como antes.
  4. No menu Build , selecione Iniciar Debug e, em seguida, escolha Attach to Process .
  5. Selecione DemoSvr na lista de processo.
  6. Execute DemoCli.exe como mostrado.
Se você deseja depurar o cliente bem, você precisará iniciar outra instância do Visual C++ (msdev.exe) da seguinte maneira:
  1. Inicie o Visual C++ e carregar o servidor e o módulo de classe como mostrado na etapa anterior. Coloque seus pontos de interrupção.
  2. Inicie uma nova instância do Visual C++ (msdev.exe).
  3. Abra DemoCli.exe como um espaço de trabalho.
  4. Abrir Form1.frm e coloque pontos de interrupção em locais desejados.
  5. Pressione a tecla F5 para iniciar o cliente. Use a tecla F10 para depurar uma linha e a tecla F11 para entrar em uma chamada.

Argumentos de linha de comando para os servidores locais

Há três opções de linha de comando para iniciar um servidor de fora de processo:
  • /regserver - informa ao servidor para registrar a mesmo e sua biblioteca de tipos associados.

  • /Unregserver - informa ao servidor para cancelar o registro si mesmo e suas entradas de biblioteca de tipos associados.

  • / incorporando - mantém o servidor fora de processo na memória aguardando o primeiro cliente para se conectar. Na verdade, COM serviços passa esse argumento para um servidor fora de processo quando ele tentar iniciá-lo.

Referências

Para obter informações adicionais sobre depuração componentes ActiveX do Visual Basic no VC ++, clique no número abaixo para ler 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 código nativo no VC ++
Também convém 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 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: 200034  (http://support.microsoft.com/kb/200034/en-us/ )