Как для перехвата ошибок во время выполнения в сервер сценариев ActiveX

Переводы статьи Переводы статьи
Код статьи: 232394 - Vizualiza?i produsele pentru care se aplic? acest articol.
Эта статья помещена в архив. Она предлагается "как есть" и обновляться не будет.
Примечание.Microsoft Visual C++ 2005, Microsoft Visual C++ .NET 2003 и Microsoft Visual C++ .NET 2002 поддерживает модель управляемого кода, который поставляется с Microsoft .NET Framework и неуправляемым собственной модели кода Microsoft Windows. Данные этой статьи относятся только к нерегулируемому программному коду Visual C++..
Развернуть все | Свернуть все

Аннотация

Как и все программы, сценариев запуска в сценарии ActiveX сервера может создавать два типа ошибок, во время компиляции и выполнения. В более ранних реализаций обработчиков сценариев ActiveX, с корпорации Майкрософт (VBScript и JScript), не внес различие между двумя типами ошибок. Оба были обработаны вIActiveScriptSite::OnScriptError(). В более поздних версиях обработчиков сценариев различие сделан между ошибки времени выполнения и во время компиляции. Ошибки компиляции, такие как синтаксические ошибки по-прежнему выводятся сервера сценариев ActiveX, который с помощьюIActiveScriptSite::OnScriptError()метод. Тем не менее ошибки времени выполнения, таких как передача недопустимых аргументов, не выводятся непосредственно наOnScriptError(). Вместо этого отчет в другой методIActiveScriptSiteDebug::OnScriptErrorDebug().

В данной статье описывается изменение существующего сервера сценариев ActiveX для перехвата ошибок во время выполнения, исключения из сценариев.

Дополнительная информация

В данной статье предполагается, что уже записаны сервера сценариев ActiveX. Дополнительные сведения об этом можно найти в статьях, указаны в разделе «Ссылки» данной статьи.

В последние выпуски обработчики сценариевIActiveScriptSiteDebug::OnScriptErrorDebugвызывается при возникновении ошибки во время выполнения. надписьюIActiveScriptSiteDebugинтерфейс предоставляет возможность участвовать в отладке сервера сценариевПрежде чемотладчик участвует. Чтобы сервер сценариев, уведомляемых при ошибке во время выполнения возникает, минимальная реализацияIActiveScriptSiteDebugне требуется.

КогдаIActiveScript::SetScriptSiteметод вызывается, обработчик сценария будет QueryInterface указатель IActiveScriptSite узла дляIActiveScriptSiteDebugи сканеров. Если это не так, обработчик сценария будет пытаются связаться с отладчика сценариев самостоятельно. Однако в случае успешного QueryInterface обработчик сценария затем вызоветIActiveScriptSiteDebug::GetApplication()Чтобы установить средства отладки для сценариев сеанса. ЕслиIActiveScriptSiteDebug::GetApplication()происходит сбой, обработчик сценария будет завершать, отладка не поддерживается на компьютере и вернуться кIActiveScriptSite::OnScriptError()для обработки всех ошибок.

ЭтоIActiveScriptSiteDebugинтерфейс с минимальной реализации:
   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;}
				
Примечание.В Visual C++ 2005 необходимо добавить параметр компилятора (для общих языка среды поддержки/ CLR: oldSyntax) для успешной компиляции предыдущего примера кода. Чтобы добавить параметр компилятора поддержки общего языка во время выполнения, выполните следующие действия.
  1. затем –Projectи выберите командуИмя_проектаСвойства.

    Примечание.Имя_проекта— Это имя проекта.
  2. expandСвойства конфигурациии выберите командуОбщие.
  3. В правой области щелкнитеОбщей языковой среды выполнения поддержки, старый синтаксис (/ CLR: oldSyntax)В диалоговом окнеПоддержка общей языковой среды выполненияпараметры проекта.
  4. затем –Применениеи выберите командуOk..
Для получения дополнительных сведений о параметрах компилятора поддержки во время выполнения общего языка посетите следующий веб-узел Microsoft Developer Network (MSDN):
http://msdn2.Microsoft.com/en-us/library/k8d11d4s.aspx
Кроме того, сервер сценариев могут предпочесть более полную реализациюIActiveScriptSiteDebugи сканеров. Для документации оIActiveScriptSiteDebugинтерфейс, посетите веб-узел MSDN следующие веб-узла:
.aspx HTTP://MSDN.Microsoft.com/en-us/library/6c5sfkte (VS.85)

Ссылки

Для получения дополнительных сведений о создании сценариев ActiveX щелкните следующий номер статьи базы знаний Майкрософт:
223139How to add support for hosting VBScript to an ATL application
183698Axsh.exe demonstrates how to implement an active scripting host
168214MFCAxs.exe implements an Active Script host using MFC
223389Scripting.exe file contains the headers and libraries that are necessary to create ActiveX Script hosts and engines

Свойства

Код статьи: 232394 - Последний отзыв: 23 февраля 2014 г. - Revision: 2.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Visual C++ 2005 Express Edition
  • Microsoft Visual C++ .NET 2003 Standard Edition
  • Microsoft Visual C++ .NET 2002 Standard Edition
  • Microsoft Visual C++ 5.0 Professional Edition
  • Microsoft Visual C++ 5.0 Enterprise Edition
Ключевые слова: 
kbnosurvey kbarchive kbactivexscript kbhowto kbmt KB232394 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке: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