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.
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 ++
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.
Inicie o Visual Basic, crie um novo projeto ActiveX EXE e, em seguida, renomeie o projeto para DemoSvr.
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
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.
Inicie o Visual Basic, crie um projeto Standard EXE e, em seguida, renomeie o projeto para DemoCli.
No menu Project , selecione References .
Localizar e verificar DemoSvr e certifique-se de que ele está apontando para o arquivo DemoSvr.exe que você criou. Clique em OK .
Adicione um controle CommandButton ao formulário padrão (Form1).
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
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.
Abrir DemoSvr.exe como um espaço de trabalho ou um arquivo (Abrir como automático).
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
No menu Project , selecione configurações .
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".
Pressione a tecla F5 para iniciar o servidor. Neste ponto, DemoSvr.exe seria carregado e esperando por conexões de cliente potencial.
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:
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.
Inicie o Visual C++ (msdev.exe).
Abra Class1.cls e colocar seus pontos de interrupção como antes.
No menu Build , selecione Iniciar Debug e, em seguida, escolha Attach to Process .
Selecione DemoSvr na lista de processo.
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:
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.
Inicie uma nova instância do Visual C++ (msdev.exe).
Abra DemoCli.exe como um espaço de trabalho.
Abrir Form1.frm e coloque pontos de interrupção em locais desejados.
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.
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.
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/
)
Quanto esforço foi necessário para seguir os procedimentos deste artigo?
Muito baixo
Baixo
Moderado
Alto
Muito alto
O que podemos fazer para melhorar essa informação?
Para proteger sua privacidade, não inclua informações de contato em seus comentários.
Obrigado! Seus comentários são usados para nos ajudar a aperfeiçoar o conteúdo de suporte. Para obter mais opções de ajuda, visite a Home Page de Ajuda e Suporte.