Исправление: Переполнение стека возникает контейнеры элементов управления MFC ActiveX введите состояние бесконечной рекурсии в Visual C++

Переводы статьи Переводы статьи
Код статьи: 192942 - Vizualiza?i produsele pentru care se aplic? acest articol.
Эта статья помещена в архив. Она предлагается "как есть" и обновляться не будет.
Развернуть все | Свернуть все

Проблема

В некоторых случаях контейнеры элементов управления MFC ActiveX вводит состояние бесконечной рекурсии, в конечном итоге приводит к переполнению стека. Симптомы этой используются, когда положение изменения узла элемента управления, внешне зависнет программой и в конечном итоге создание стека переполнения исключений операционной системы (0xC00000FD). Трассировка стека выглядит следующим образом:
   COleControlSite::MoveWindow
   COleControl::XOleInPlaceObject::SetObjectRects
   COleControl::OnSetObjectRects
   COleControlSite::MoveWindow
   ...
				

Причина

При изменении положения элемента управления веб-узла, код контейнера изменение положения окна «reflector» (если есть) и прямоугольников отслеживания (при наличии). Код элемента управления контейнера в конечном итоге вызывает COleControl::XOleInPlaceObject::SetObjectRects. (См. CTLINPLC.CPP источника MFC). SetObjectRects() вызывает GetOuterWindow(), возвращающий объект, отражающий окна при его наличии. Если переменная рефлектор окна является значение NULL объект того же окна возвращается, MoveWindow вызывается с помощью окна возвращаемый объект. В этом случае MoveWindow вызов к самому себе, что рекурсивный цикл.

Решение

Один способ заключается в копировании MFC42.DLL версии Visual C++ 5.0 (версия файла: 4.21.7303) в домашнюю папку программы, эта проблема. Это приведет к программе с помощью более ранней версии MFC, вместо MFC42.DLL, который находится в системном каталоге Windows.

Статус

Корпорация Майкрософт подтверждает это будет ошибкой в корпорации Майкрософт, продукты, перечисленные в этой статье. Эта ошибка была исправлена в Visual Studio 6.0 пакетом обновления 1.

Для получения данного пакета обновления, посетите следующий веб-узел корпорации Майкрософт:
http://msdn2.Microsoft.com/en-US/Vstudio/Aa718362.aspx
Для получения дополнительных сведений о Visual Studio 6.0 с пакетом обновления 1 щелкните следующие номера статей базы знаний Майкрософт:
193009Сведений о системе Visual Studio 6.0 с пакетом обновления 1
194022INFO: Общие сведения о пакетах обновления для Visual Studio 6.0
194295Как узнать, что установлен пакет Visual Studio

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

Эта ошибка была найдена в WordPerfect 8, который поставляется в составе набора Office Corel 8. Эта ошибка возникает только в версии Visual C++ 6.0 MFC42.DLL.

Свойства

Код статьи: 192942 - Последний отзыв: 23 февраля 2014 г. - Revision: 2.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Foundation Class Library 4.2
Ключевые слова: 
kbnosurvey kbarchive kbqfe kbbug kbfix kbnoupdate kbvc600sp1fix kbvs600sp1fix kbmt KB192942 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:192942

Отправить отзыв

 

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