Comment faire pour intercepter des erreurs d'exécution dans un hôte de script ActiveX

Traductions disponibles Traductions disponibles
Numéro d'article: 232394 - Voir les produits auxquels s'applique cet article
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
note Microsoft Visual C++ 2005, Visual C++ .NET 2003 et Visual C++ .NET 2002 prennent en charge le modèle de code géré qui est fourni par Microsoft .NET Framework et le modèle de code Microsoft Windows natif non géré. Les informations contenues dans cet article s'applique uniquement à un code Visual C++ non géré.
Agrandir tout | Réduire tout

Résumé

Comme tous les programmes, scripts d'exécution dans un script ActiveX hôte peut générer deux types d'erreurs, compilation et exécution. Dans les implémentations précédentes, les moteurs de script ActiveX fournis par Microsoft (VBScript et JScript), n'effectuée aucun distinction entre les deux types d'erreurs. Les deux ont été traités dans IActiveScriptSite::OnScriptError() . Avec les versions plus récentes des moteurs de script, un a été distinction entre erreurs d'exécution et de compilation. Erreurs de compilation, comme les erreurs de syntaxe, sont toujours signalées à l'hôte de script ActiveX à l'aide de la méthode IActiveScriptSite::OnScriptError() . Cependant, au moment de l'exécution erreurs, telles que la transmission d'arguments non valides, ne sont pas directement envoyées à OnScriptError() . Au lieu de cela, elles sont signalées à une autre méthode, IActiveScriptSiteDebug::OnScriptErrorDebug() .

Cet article explique comment modifier un hôte de script ActiveX existant pour intercepter des erreurs d'exécution générées à partir de scripts.

Plus d'informations

Cet article suppose que vous avez déjà écrit un hôte de script ActiveX. Pour plus d'informations sur cette opération, consultez les articles indiquées dans la section "Références" de cet article.

Dans les versions plus récentes des moteurs de script, IActiveScriptSiteDebug::OnScriptErrorDebug est appelé lorsqu'une erreur d'exécution se produit. L'interface IActiveScriptSiteDebug offre l'hôte de script possibilité de participer de débogage avant que le débogueur est impliquée. Pour que l'hôte de script être averti lorsqu'une erreur d'exécution survient, une implémentation minimale de IActiveScriptSiteDebug est requise.

Lorsque la méthode IActiveScript::SetScriptSite est appelée, le moteur de script est QueryInterface IActiveScriptSite pointeur l'hôte pour l'interface IActiveScriptSiteDebug . Si ceci échoue, le moteur de script tente de contacter le débogueur de script sur son propre. Cependant, si le QueryInterface réussit, le moteur de script appeler puis IActiveScriptSiteDebug::GetApplication() pour établir les fonctions de débogage pour la session de script. Si IActiveScriptSiteDebug::GetApplication() échoue, le moteur de script est conclure que le débogage est pas disponible sur l'ordinateur et revenir aux IActiveScriptSite::OnScriptError() des gestion des erreurs toutes les.

C'est l'interface IActiveScriptSiteDebug , avec une implémentation minimale :
   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;}
				
Remarque dans Visual C++ 2005, vous devez ajouter l'option compilateur commun langue runtime prise en charge ( /clr:oldSyntax ) pour compiler avec succès l'exemple de code précédent. Pour ajouter l'option langue runtime prise en charge compilateur courantes, procédez comme suit :
  1. Cliquez sur le projet , puis cliquez sur Propriétés ProjectName.

    note ProjectName est un espace réservé pour le nom du projet.
  2. Développez les propriétés de configuration , puis cliquez sur général .
  3. Dans le volet droit, cliquez pour sélectionner Common Language Runtime Support, l'ancienne syntaxe (/ clr:oldSyntax) dans le Common Language Runtime prend en charge les paramètres de projets.
  4. Cliquez sur Appliquer , puis cliquez sur OK .
Pour plus d'informations options du compilateur courantes langue exécution prise en charge, reportez-vous au site de Web MSDN (Microsoft Developer Network) suivant :
http://msdn2.microsoft.com/en-us/library/k8d11d4s.aspx
Sinon, un hôte de script peut choisir de faire une implémentation plus complète de l'interface IActiveScriptSiteDebug . Pour la documentation sur l'interface IActiveScriptSiteDebug , consultez le MSDN suivant site :
http://msdn.microsoft.com/en-us/library/6c5sfkte(VS.85).aspx

Références

Pour plus d'informations sur la création de script ActiveX, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
223139 Comment ajouter la prise en charge pour l'hébergement VBScript à une application ATL
183698 Axsh.exe montre comment implémenter une ordinateur hôte script actif
168214 MFCAxs.exe implémente un ordinateur hôte Active Script à l'aide de MFC
223389 Fichier Scripting.exe contient les en-têtes et bibliothèques qui sont nécessaires pour créer des scripts ActiveX hôtes et les moteurs

Propriétés

Numéro d'article: 232394 - Dernière mise à jour: dimanche 23 février 2014 - Version: 5.3
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Visual C++ 2005 Express Edition
  • Microsoft Visual C++ .NET 2003 Initiation
  • Microsoft Visual C++ .NET 2002 Initiation
  • Microsoft Visual C++ 6.0 Édition Professionnelle
  • Microsoft Visual C++ 6.0 Édition Entreprise
  • Microsoft Visual C++, 32-bit Learning Edition 6.0
  • Microsoft Visual C++ 5.0 Édition Professionnelle
  • Microsoft Visual C++ 5.0 Édition Entreprise
  • Visual Basic, Scripting Edition 5.0
  • Visual Basic, Scripting Edition 4.0
  • Visual Basic, Scripting Edition 3.0
Mots-clés : 
kbnosurvey kbarchive kbmt kbactivexscript kbhowto KB232394 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 232394
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

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