Como detectar erros de tempo de execução de um anfitrião de scripts ActiveX

Traduções de Artigos Traduções de Artigos
Artigo: 232394 - Ver produtos para os quais este artigo se aplica.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Nota Microsoft Visual C++ 2005, Microsoft Visual C++ .NET 2003 e Microsoft Visual C++ .NET 2002 suportam o modelo de código gerido que é fornecido pelo Microsoft .NET Framework e o modelo de código do Microsoft Windows nativo não gerido. As informações neste artigo aplicam-se apenas ao código de Visual C++ não gerido.
Expandir tudo | Reduzir tudo

Sumário

Como todos os programas, scripts a ser executado num Script ActiveX anfitrião pode accionar a dois tipos de erros, tempo de compilação e tempo de execução. Nas implementações anteriores, motores de processamento de scripts de ActiveX fornecido pela Microsoft (VBScript e JScript), efectuada não distinção entre os dois tipos de erros. Ambos foram processados em IActiveScriptSite::OnScriptError() . Com versões mais recentes dos motores de script, foi efectuada uma distinção entre erros de tempo de execução e tempo de compilação. Erros de tempo de compilação, tais como erros de sintaxe, ainda são comunicados ao anfitrião de Script ActiveX utilizando o método IActiveScriptSite::OnScriptError() . No entanto, os erros de tempo de execução, tal como passar argumentos inválidos, directamente não são comunicados ao OnScriptError() . Em vez disso, são comunicados a um método diferente, IActiveScriptSiteDebug::OnScriptErrorDebug() .

Este artigo descreve como modificar um anfitrião de Script ActiveX existente para detectar erros durante a execução iniciados a partir de scripts.

Mais Informação

Este artigo pressupõe que já tenha escrito um anfitrião de scripts ActiveX. Para mais informações sobre este procedimento, consulte os artigos indicados na secção "Referências" deste artigo.

Em versões mais recentes dos motores de script, IActiveScriptSiteDebug::OnScriptErrorDebug é chamado quando ocorre um erro de tempo de execução. A interface IActiveScriptSiteDebug fornece o script host a oportunidade de participar na depuração antes do depurador está envolvida. Para que o anfitrião de script ser notificado quando um erro durante a execução ocorre, é necessária uma implementação do IActiveScriptSiteDebug mínimo.

Quando o método IActiveScript::SetScriptSite é chamado, o motor de script irá QueryInterface IActiveScriptSite ponteiro a anfitrião para a interface IActiveScriptSiteDebug . Se isto falhar, o motor de script irá tentar contactar o depurador de scripts no seu próprio. No entanto, se o QueryInterface tiver êxito, o motor de script, em seguida, chamará IActiveScriptSiteDebug::GetApplication() para estabelecer as funcionalidades de depuração para a sessão de scripts. Se IActiveScriptSiteDebug::GetApplication() falhar, o motor de script irá concluir que depuração não está disponível no computador e reverter para IActiveScriptSite::OnScriptError() para todos os tratamento de erros.

Esta é a interface IActiveScriptSiteDebug , com uma implementação mínimo:
   STDMETHOD(GetDocumentContextFromPosition)(
      DWORD dwSourceContext, 
      ULONG uCharacterOffset, 
      ULONG uNumChars, 
      IDebugDocumentContext **ppsc) {return E_NOTIMPL;}

   STDMETHOD GetApplication( IDebugApplication **ppda ) {return E_NOTIMPL;}

   STDMETHOD(GetRootApplicationNode)( IDebugApplicationNode **ppdanRoot) {return E_NOTIMPL;}
   
   STDMETHOD(OnScriptErrorDebug)( 
      IActiveScriptErrorDebug *pErrorDebug, 
      BOOL *pfEnterDebugger,
      BOOL *pfCallOnScriptErrorWhenContinuing) {return E_NOTIMPL;}
				
NOTA: no Visual C++ 2005, terá de adicionar a opção de compilador do suporte de tempo de execução idioma comum ( / clr:oldSyntax ) para compilar com êxito o anterior exemplo de código. Para adicionar a opção de compilador do suporte de tempo de execução idioma comum, siga estes passos:
  1. Clique em projecto e, em seguida, clique em propriedades ProjectName.

    Nota ProjectName é um marcador para o nome do projecto.
  2. Expanda Propriedades de configuração e, em seguida, clique em Geral .
  3. No painel direito, clique para seleccionar Runtime do idioma comum suporte, sintaxe antigo (/ clr:oldSyntax) no Common Language Runtime suporta definições do projecto.
  4. Clique em Aplicar e, em seguida, clique em OK .
Para mais informações sobre opções de compilador suporte tempo de execução de linguagem comum, visite o seguinte Web site da Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/k8d11d4s.aspx
Como alternativa, um Script Host pode optar por têm uma implementação da interface IActiveScriptSiteDebug mais completa. Para documentação sobre a interface IActiveScriptSiteDebug , visite a MSDN seguinte Web site:
http://msdn.microsoft.com/en-us/library/6c5sfkte(VS.85).aspx

Referências

Para obter mais informações sobre como criar scripts de ActiveX, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
223139Como adicionar suporte para hospedar VBScript para uma aplicação ATL
183698Axsh.exe demonstra como implementar um anfitrião de scripts activo
168214MFCAxs.exe implementa um anfitrião de scripts do Active Directory utilizando MFC
223389Ficheiro Scripting.exe contém os cabeçalhos e bibliotecas que são necessárias para criar scripts de ActiveX anfitriões e motores

Propriedades

Artigo: 232394 - Última revisão: 23 de fevereiro de 2014 - Revisão: 5.3
A informação contida neste artigo aplica-se a:
  • Microsoft Visual C++ 2005 Express Edition
  • Microsoft Visual C++ .NET 2003 Standard Edition
  • Microsoft Visual C++ .NET 2002 Standard Edition
  • Microsoft Visual C++ 6.0 Professional Edition
  • Microsoft Visual C++ 6.0 Enterprise Edition
  • Microsoft Visual C++, 32-bit Learning Edition 6.0
  • Microsoft Visual C++ 5.0 Professional Edition
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Visual Basic, Scripting Edition 5.0
  • Visual Basic, Scripting Edition 4.0
  • Visual Basic, Scripting Edition 3.0
Palavras-chave: 
kbnosurvey kbarchive kbmt kbactivexscript kbhowto KB232394 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 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: 232394

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