Das Abfangen von Laufzeitfehlern in einem ActiveX Scripting Host

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 232394 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Hinweis: Microsoft Visual C++ 2005, Microsoft Visual C++ .NET 2003 und Microsoft Visual C++ .NET 2002 unterstützen das verwaltete Codemodell, das von Microsoft .NET Framework bereitgestellt wird und nicht verwaltete systemeigene Microsoft Windows-Codemodell. Die Informationen in diesem Artikel beziehen sich nur auf nicht verwalteten Visual C++-Code.
Alles erweitern | Alles schließen

Zusammenfassung

Wie alle Programme, Skripts ausführen in einem ActiveX-Skript Host kann zwei Arten von Fehlern, zur Kompilierungszeit und zur Laufzeit auslösen. In früheren Implementierungen ActiveX Scripting Module von Microsoft (VBScript und JScript), keine Unterscheidung zwischen zwei Arten von Fehlern vorgenommen bereitgestellt. Beide wurden in IActiveScriptSite::OnScriptError() behandelt. Mit neueren Versionen von den Skriptmodulen des erfolgte einer Unterscheidung zwischen Laufzeit und zur Kompilierzeit Fehlern. Kompilierungsfehler, wie z. B. Syntaxfehler, werden weiterhin die ActiveX-Scripting-Host mithilfe der IActiveScriptSite::OnScriptError() -Methode gemeldet. Laufzeitfehler, z. B. ungültige Argumente übergeben werden jedoch nicht direkt zu OnScriptError() gemeldet. Stattdessen werden Sie eine andere Methode IActiveScriptSiteDebug::OnScriptErrorDebug() gemeldet.

Dieser Artikel beschreibt zum Ändern einer vorhandenen ActiveX Scripting Host zum Abfangen von Laufzeitfehlern, die von Skripts ausgelöst.

Weitere Informationen

Dieser Artikel setzt voraus, dass Sie einen Active Script Host bereits geschrieben haben. Weitere Informationen auf diese Weise finden Sie in die Artikeln in Abschnitt "Informationsquellen" dieses Artikels notiert haben.

In den neuesten Versionen der Skriptmodule wird IActiveScriptSiteDebug::OnScriptErrorDebug aufgerufen, wenn ein Laufzeitfehler auftritt. Die IActiveScriptSiteDebug -Benutzeroberfläche ermöglicht der Script Host Möglichkeit zum Debuggen, bevor der Debugger beteiligt beteiligt ist. Damit der Script Host, wenn ein Laufzeitfehler benachrichtigt werden tritt, eine minimale Implementierung von IActiveScriptSiteDebug erforderlich ist.

Wenn die IActiveScript::SetScriptSite -Methode aufgerufen wird, wird das Skriptmodul QueryInterface den Host IActiveScriptSite Zeiger für die IActiveScriptSiteDebug -Schnittstelle. Wenn dies fehlschlägt, versucht das Skriptmodul, den Skriptdebugger eigenständig Kontakt. Wenn jedoch die QueryInterface erfolgreich ist, wird das Skriptmodul dann IActiveScriptSiteDebug::GetApplication() Debuggen Einrichtungen für die Skripterstellung Sitzung herstellen aufrufen. Wenn IActiveScriptSiteDebug::GetApplication() fehlschlägt, wird das Skriptmodul abschließen, Debuggen ist, nicht auf dem Computer verfügbar und IActiveScriptSite::OnScriptError() für alle Fehlerbehandlung wiederherstellen.

Dies ist die IActiveScriptSiteDebug -Schnittstelle mit einer minimalen Implementierung:
   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;}
				
Hinweis In Visual C++ 2005 müssen Sie die common Language Common Language Runtime Unterstützung-Compileroption ( / clr: oldSyntax ) des vorherigen Codebeispiels erfolgreich zu kompilieren. Gehen Sie folgendermaßen vor um die common Language Common Language Runtime Unterstützung-Compileroption hinzuzufügen,
  1. Klicken Sie auf Projekt , und klicken Sie dann auf ProjectName Eigenschaften .

    Hinweis: ProjectName ist ein Platzhalter für den Namen des Projekts.
  2. Erweitern Sie Konfiguration , und klicken Sie dann auf Allgemein .
  3. Klicken Sie im rechten Fensterbereich auf Common Language Runtime-Unterstützung, alte Syntax (/ CLR: oldSyntax) in der Common Language Runtime-Unterstützung Projekteinstellungen.
  4. Klicken Sie auf Übernehmen , und klicken Sie dann auf OK .
Weitere Informationen zu common Language Runtime Unterstützung Compileroptionen der folgenden Microsoft Developer Network (MSDN)-Website:
http://msdn2.microsoft.com/en-us/library/k8d11d4s.aspx
Alternativ kann eine Skripthost festlegen, dass eine vollständigere Implementierung der IActiveScriptSiteDebug -Schnittstelle. Weitere Informationen über die IActiveScriptSiteDebug -Schnittstelle finden Sie auf das folgende MSDN-Website:
http://msdn.microsoft.com/en-us/library/6c5sfkte(VS.85).aspx

Informationsquellen

Weitere Informationen zu ActiveX-Skript erstellen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
223139Zum Hinzufügen von Unterstützung für VBScript zu einer ATL-Anwendung hosten
183698Axsh.exe veranschaulicht das Implementieren eines active scripting Host
168214MFCAxs.exe implementiert ein Active Script-Host mit MFC
223389Scripting.exe Datei enthält die Header und Bibliotheken, die zum Erstellen von ActiveX-Skript Hosts und Module erforderlich sind

Eigenschaften

Artikel-ID: 232394 - Geändert am: Sonntag, 23. Februar 2014 - Version: 5.3
Die Informationen in diesem Artikel beziehen sich auf:
  • 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
Keywords: 
kbnosurvey kbarchive kbmt kbactivexscript kbhowto KB232394 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 232394
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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