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.
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 ++
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.
Inicie o Visual Basic, crie um novo projecto EXE ActiveX e, em seguida, mude o nome do projecto para DemoSvr.
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
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.
Guarde e compilar o projecto para criar DemoSvr.exe.
Inicie o Visual Basic, crie um projecto EXE padrão e, em seguida, mude o nome do projecto para DemoCli.
No menu Project , seleccione References .
Localizar e verificar DemoSvr e certifique-se que é aponta para o ficheiro DemoSvr.exe apenas incorporado. Clique em OK .
Adicione um controlo CommandButton ao formulário predefinido (Form1).
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
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.
Guarde e compilar o projecto para criar DemoCli.exe.
Abrir DemoSvr.exe como uma área de trabalho ou um ficheiro (Abrir como automático).
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
No menu Project , seleccione definições .
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".
Prima a tecla F5 para iniciar o servidor. Neste ponto, DemoSvr.exe seriam carregados e aguardar quaisquer ligações de clientes potenciais.
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:
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.
Inicie o Visual C++ (msdev.exe).
Abra Class1.cls e coloque os pontos de interrupção como antes.
No menu criar , seleccione Iniciar Debug e, em seguida, escolha anexar para execução .
Seleccione DemoSvr na lista de processo.
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:
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.
Inicie uma nova instância do Visual C++ (msdev.exe).
Abrir DemoCli.exe como uma área de trabalho.
Abrir Form1.frm e, em seguida, coloque pontos de interrupção nos locais pretendidos.
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.
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.
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/
)
Qual foi o esforço que despendeu pessoalmente para utilizar este artigo?
Muito baixo
Baixo
Moderado
Elevado
Muito elevado
Diga-nos porquê e o que podemos fazer para melhorar estas informações
Obrigado! Os seus comentários são utilizados para ajudar-nos a melhorar o conteúdo do nosso suporte. Para obter mais opções de assistência, visite a Home Page de Ajuda e Suporte.