DetailPage-MSS-KB

Base de Dados de Conhecimento

Artigo: 232394 - Última revisão: segunda-feira, 9 de Janeiro de 2006 - Revisão: 5.3

 
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.

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 (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 (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:
223139  (http://support.microsoft.com/kb/223139/ ) Como adicionar suporte para hospedar VBScript para uma aplicação ATL
183698  (http://support.microsoft.com/kb/183698/ ) Axsh.exe demonstra como implementar um anfitrião de scripts activo
168214  (http://support.microsoft.com/kb/168214/ ) MFCAxs.exe implementa um anfitrião de scripts do Active Directory utilizando MFC
223389  (http://support.microsoft.com/kb/223389/ ) Ficheiro Scripting.exe contém os cabeçalhos e bibliotecas que são necessárias para criar scripts de ActiveX anfitriões e motores

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: 
kbmt kbactivexscript kbhowto KB232394 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: 232394  (http://support.microsoft.com/kb/232394/en-us/ )
Partilhar
Opções de suporte adicionais
Fóruns de Suporte da Comunidade Microsoft
Contacte-nos directamente
Encontre um parceiro certificado Microsoft
Loja Microsoft