Распространяемый пакет исправления: утечка GDI в приложение MFC с интерфейсом MDI, разработанных в Visual Studio 2010 при создании нового документа

ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.

Эта статья на английском языке: 2723430
Проблема
Рассмотрим следующий сценарий:
  • С помощью Microsoft Visual Studio 2010 для разработки приложений Microsoft Visual C++ Microsoft Foundation Class (MFC). Приложение использует макет с вкладками многодокументного интерфейса (MDI).
  • Запустите приложение MFC на вашем компьютере.
  • Когда приложение запущено, закройте последней вкладке документа и создайте новый документ в приложении.
В этом сценарии приложение использует десять дополнительных маркеров интерфейса графических устройств (GDI) неожиданно. Использование ресурсов GDI дескриптор увеличивается при каждом закрытии последней вкладке документа и создавать новые документы. Со временем это может вызвать утечку дескриптора GDI.
Причина
Эта проблема возникает из-за передней дескрипторов GDI не освобождаются правильно библиотекой MFC при закрытии последней вкладке документа.
Решение

Сведения об исправлении

Доступно исправление от корпорации Майкрософт. Тем не менее оно предназначено для устранения проблемы, описанной в этой статье. Предлагаемое исправление должно применяться исключительно в системах, в которых обнаружена эта специфическая неполадка. Это исправление может проходить дополнительное тестирование. Таким образом если вы не наблюдаете эту проблему, рекомендуется отложить ее решение до выхода ближайшего пакета обновления, содержащего это исправление.

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

ПримечаниеПосле установки этого исправления необходимо активировать исправление, добавив следующий код в код при запуске приложения, например методу InitInstance .

g_bReuseRemovedTabGroups = TRUE;

Необходимые условия

Данное исправление необходимо иметь Visual Studio 2010 Пакет обновления 1 (SP1 установлен).

Необходимость перезагрузки

Необходимо перезагрузить компьютер после установки исправления, если файлы не используются в процессе установки. Рекомендуется закрыть все компоненты, связанные с Visual Studio 2010, перед установкой исправления.

Сведения о замене исправлений

Это исправление не заменяет ранее выпущенные исправления.

Сведения о файле

Общая версия данного исправления содержит атрибуты файла (или более поздними), приведенные в следующей таблице. Дата и время для этих файлов указаны в UTC. При просмотре сведений о файле, оно преобразуется в локальное время. Чтобы узнать разницу между временем по Гринвичу и местным временем, следует использовать Часовой пояс на вкладке Дата и время элемент панели управления.

Для всех поддерживаемых x 86-разрядных версий Microsoft Visual C++ 2010 с пакетом обновления 1 распространяемого пакета
Имя файлаВерсия файлаРазмер файлаДатаВремяПлатформы
Библиотек Atl100.dll10.0.40219.434138,80006-Дек-201208: 29x86
Mfc100.dll10.0.40219.4344,400,70406-Дек-201209: 27x86
Mfc100chs.dll10.0.40219.43436,93606-Дек-201209: 27x86
Mfc100cht.dll10.0.40219.43436,91206-Дек-201209: 27x86
Mfc100deu.dll10.0.40219.43465,07206-Дек-201209: 27x86
Mfc100enu.dll10.0.40219.43455,85606-Дек-201209: 27x86
Mfc100esn.dll10.0.40219.43464,58406-Дек-201209: 27x86
Mfc100fra.dll10.0.40219.43465,09606-Дек-201209: 27x86
Mfc100ita.dll10.0.40219.43463,04806-Дек-201209: 27x86
Mfc100jpn.dll10.0.40219.43444,59206-Дек-201209: 27x86
Mfc100kor.dll10.0.40219.43444,08006-Дек-201209: 27x86
Mfc100rus.dll10.0.40219.43461,48806-Дек-201209: 27x86
Файл Mfc100u.dll10.0.40219.4344,425,79206-Дек-201209: 27x86
Mfcm100.dll10.0.40219.43482,48006-Дек-201209: 27x86
Mfcm100u.dll10.0.40219.43482,48006-Дек-201209: 27x86
Msvcp100.dll10.0.40219.434421,93606-Дек-201208: 29x86
Msvcr100_clr0400.dll10.0.40219.434774,19206-Дек-201208: 29x86
Vcomp100.dll10.0.40219.43452,28806-Дек-201209: 27x86
Для всех поддерживаемых 64-разрядных версий Microsoft Visual C++ 2010 с пакетом обновления 1 распространяемого пакета
Имя файлаВерсия файлаРазмер файлаДатаВремяПлатформы
Библиотек Atl100.dll10.0.40219.434159,29606-Дек-201209: 10x64
Mfc100.dll10.0.40219.4345,579,84006-Дек-201209: 10x64
Mfc100chs.dll10.0.40219.43436,91206-Дек-201209: 10x64
Mfc100cht.dll10.0.40219.43436,93606-Дек-201209: 10x64
Mfc100deu.dll10.0.40219.43465,09606-Дек-201209: 10x64
Mfc100enu.dll10.0.40219.43455,88006-Дек-201209: 10x64
Mfc100esn.dll10.0.40219.43464,56006-Дек-201209: 10x64
Mfc100fra.dll10.0.40219.43465,09606-Дек-201209: 10x64
Mfc100ita.dll10.0.40219.43463,04806-Дек-201209: 10x64
Mfc100jpn.dll10.0.40219.43444,61606-Дек-201209: 10x64
Mfc100kor.dll10.0.40219.43444,10406-Дек-201209: 10x64
Mfc100rus.dll10.0.40219.43461,48806-Дек-201209: 10x64
Файл Mfc100u.dll10.0.40219.4345,605,93606-Дек-201209: 10x64
Mfcm100.dll10.0.40219.43493,74406-Дек-201209: 10x64
Mfcm100u.dll10.0.40219.43493,74406-Дек-201209: 10x64
Msvcp100.dll10.0.40219.434608,81606-Дек-201209: 10x64
Msvcr100_clr0400.dll10.0.40219.434830,01606-Дек-201209: 10x64
Vcomp100.dll10.0.40219.43458,92806-Дек-201209: 10x64
Для всех поддерживаемых версий Microsoft Visual C++ 2010 с пакетом обновления 1 распространяемого пакета на базе процессоров IA-64
Имя файлаВерсия файлаРазмер файлаДатаВремяПлатформы
Библиотек Atl100.dll10.0.40219.434386,11206-Дек-201208: 42IA-64
Msvcp100.dll10.0.40219.434967,23206-Дек-201208: 42IA-64
Msvcr100_clr0400.dll10.0.40219.4341,500,20806-Дек-201208: 42IA-64
Vcomp100.dll10.0.40219.434144,44806-Дек-201208: 42IA-64
Статус
Данное поведение является подтвержденной ошибкой продуктов Майкрософт, перечисленных в разделе «Информация в данной статье применима к:».

Внимание! Эта статья переведена автоматически

Vlastnosti

ID článku: 2723430 – Posledná kontrola: 01/08/2013 07:52:00 – Revízia: 2.0

Microsoft Visual Studio 2010 Service Pack 1

  • kbqfe kbhotfixserver kbfix kbsurveynew kbexpertiseadvanced kbmt KB2723430 KbMtru
Pripomienky