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

Переводы статьи Переводы статьи
Код статьи: 2723430 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

Проблема

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

Причина

Эта проблема возникает из-за передней дескрипторов GDI не освобождаются правильно библиотекой MFC при закрытии последней вкладке документа.

Решение

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

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

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

ПримечаниеПосле установки этого исправления необходимо активировать исправление, добавив следующий код в код при запуске приложения, например методу 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

Статус

Данное поведение является подтвержденной ошибкой продуктов Майкрософт, перечисленных в разделе «Информация в данной статье применима к:».

Свойства

Код статьи: 2723430 - Последний отзыв: 8 января 2013 г. - Revision: 2.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Visual Studio 2010 Service Pack 1 на следующих платформах
    • Microsoft Visual Studio 2010 Premium with MSDN
    • Microsoft Visual Studio 2010 Professional
    • Microsoft Visual Studio 2010 Ultimate
Ключевые слова: 
kbqfe kbhotfixserver kbfix kbsurveynew kbexpertiseadvanced kbmt KB2723430 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке: 2723430

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

 

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