Select the product you need help with
Приложения, использующие старые компоненты ATL могут возникнуть конфликты С DEPКод статьи: 948468 - Список продуктов, к которым относится данная статья. Источник: Поддержка Майкрософт БЫСТРАЯ ПУБЛИКАЦИЯБЫСТРАЯ ПУБЛИКАЦИЯ ДАННЫХ СОДЕРЖАТСЯ СВЕДЕНИЯ НЕПОСРЕДСТВЕННО В СЛУЖБУ ТЕХНИЧЕСКОЙ ПОДДЕРЖКИ МАЙКРОСОФТ ОРГАНИЗАЦИИ. СВЕДЕНИЯ, СОДЕРЖАЩИЕСЯ В НАСТОЯЩЕМ ДОКУМЕНТЕ СОЗДАЕТСЯ В ОТВЕТ НА НОВЫХ ИЛИ УНИКАЛЬНЫЙ РАЗДЕЛЫ, ИЛИ ПРЕДНАЗНАЧЕНА ДОПОЛНЕНИЯ ДРУГИХ ЗНАНИЙ СВЕДЕНИЯ. ДействиеПостроение приложения, использующего компонентами, созданными с помощью ATL 7.1 и более ранних версий с/ NXCOMPAT
(http://msdn2.microsoft.com/en-us/library/ms235442.aspx)
переключения или иначе воспринимается системой как «нет выполнение совместимый». Установка Visual Studio 2008 может впоследствии изготовлен VS 2008 или VS 2005, чтобы обеспечить совместимость NX по умолчанию программы. Кроме того Если AlwaysOn политики DEP для системы, приложения, использующие старую код увидит эту проблему.РезультатПрограмма может вызвать нарушение доступа из-за Предотвращение выполнения данных (DEP)
(http://msdn2.microsoft.com/en-us/library/aa366553.aspx)
Обнаружение попытки «thunk» из старых ATL кода.При попытке добавить такой элемент управления ATL в Visual Studio конструктор формы, может появиться заблуждение ошибки как «Не удалось получить дескриптор окна для элемента управления AxMyATLCtrl ActiveX без окна, элементы управления не поддерживаются». Внутреннее исключение при просмотре, будет более разглашении: "Попытка чтения или записи в защищенную память. Часто это означает, что другая память повреждена.» Однако в этом случае повреждения не скорее проблема, но вместо попытки выполнения кода в памяти NX. ПричинаATL 7.1 и более ранних версий не были разработаны с foreknowledge функция DEP безопасности. Более новые версии Windows (например, Vista XP SP2, 2003 Server) обеспечивает дополнительную защиту от вредоносных атак посредством функции DEP, но они также были закодированы, чтобы распознать старый шаблон «преобразователь» ATL и разрешить его выполнение, если процесс не помечен как NX-совместимым и включается эмуляция преобразователь. Эмуляция преобразователь используется по умолчанию, за исключением, когда процесс помечается NX совместимые или системной политики DEP отключил его. Если используется параметр /NXCOMPAT в связывание приложения или приложения процесс помечен другими средствами как совместимые NX, затем отключить эмуляцию преобразователь и старых компонентов ATL может вызвать нарушение прав доступа. Если система DEP политику AlwaysOn, отключена эмуляции преобразователь ATL, вне зависимости от атрибута NXCOMPAT для процесса. Разрешение
Дополнительные сведенияФон преобразователь ATL ATL был разработан в качестве облегченной и эффективным. Этот код используется в CWindowImplRoot, CContainedWindowT и любого класса, наследующего от них. Подклассы windows ATL создает для предоставления некоторых настраиваемых поведений. Но поскольку не понятие указателя "this" (указателя на текущий экземпляр класса object) связаны с маркерами окна (HWND), ATL требуется какой-либо механизм для преобразования из HWND указатель «this». Будучи очень эффективно, вместо поиска отдельной таблицы для HWND-> «this» указатели, ATL вставляет исполняемый код в блоки данных, выделенные во время выполнения для вставки указатель "this не известных до времени выполнения". (См. источник ATL в {ваш Directory}\VC\atlmfc\include\atlstdthunk.h установки VS и {ваш VS установки Directory}\VC\atlmfc\src\atl\atls\amd64\atlthunk.cpp). В ATL 8.0 и более поздних версиях выделенной памяти помечается исполняемого файла, например с помощью параметра PAGE_EXECUTE_READWRITE, когда вызов VirtualAlloc. Этот код должен быть изменен в будущих версиях ATL (таким образом, страницы в то же время не для записи, так и для исполняемого файла), и мы хотели бы разработчикам использовать, когда он станет доступен. Список статей: Предотвращение выполнения данных (Windows)
(http://msdn2.microsoft.com/en-us/library/aa366553.aspx)
Подробное описание функции предотвращения выполнения данных (DEP) в пакете обновления 2 (SP2) для Windows XP, Windows XP Tablet PC Edition 2005 и Windows Server 2003
(http://support.microsoft.com/default.aspx?scid=kb;en-us;875352)
/ NXCOMPAT (совместимо с Предотвращение выполнения данных)
(http://msdn2.microsoft.com/en-us/library/ms235442.aspx)
EDITBIN ссылки
(http://msdn2.microsoft.com/en-us/library/xd3shwhf.aspx)
Функция «SetProcessDEPPolicy» (Windows)
(http://msdn2.microsoft.com/en-us/library/bb736299.aspx)
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИMICROSOFT И/ИЛИ ЕЕ ПОСТАВЩИКИ НЕ ДЕЛАТЬ ПРЕДСТАВЛЕНИЯ ИЛИ ГАРАНТИЙ О ПРИГОДНОСТИ, НАДЕЖНОСТЬ И ТОЧНОСТЬ ИНФОРМАЦИИ СОДЕРЖАТСЯ В ДОКУМЕНТЫ И СВЯЗАННЫХ РИСУНКОВ ПУБЛИКАЦИИ НА ЭТОМ ВЕБ-САЙТЕ (ДАЛЕЕ "МАТЕРИАЛЫ") ДЛЯ ЛЮБЫХ ЦЕЛЕЙ. МАТЕРИАЛЫ МОГУТ СОДЕРЖАТЬ ТЕХНИЧЕСКИЕ НЕТОЧНОСТИ ИЛИ ОПЕЧАТОК И МОЖЕТ БЫТЬ ИЗМЕНЕН В ЛЮБОЕ ВРЕМЯ БЕЗ ПРЕДВАРИТЕЛЬНОГО УВЕДОМЛЕНИЯ. В МАКСИМАЛЬНОЙ СТЕПЕНИ, ДОПУСКАЕМОЙ ПРИМЕНИМО ЗАКОНОДАТЕЛЬСТВОМ, КОРПОРАЦИЯ МАЙКРОСОФТ ИЛИ ЕЕ ПОСТАВЩИКИ DISCLAIM И ИСКЛЮЧИТЬ ВСЕ ПРЕДСТАВЛЕНИЯ ГАРАНТИЙ И УСЛОВИЙ ЛИ EXPRESS, КОСВЕННЫХ ИЛИ УСТАНОВЛЕННЫХ ЗАКОНОМ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЕТСЯ, ГАРАНТИЙ, УСЛОВИЙ ИЛИ ЗАГОЛОВКА, ОТЛИЧНЫХ ОТ КОНТРАФАКЦИИ, ИСПРАВИВ ОШИБКУ ИЛИ КАЧЕСТВА, ЛЮБЫЕ ГАРАНТИИ ТОВАРНОСТИ ИЛИ ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ, ОТНОСЯЩИЕСЯ К МАТЕРИАЛАМ. Примечание. Это ЭКСПРЕСС-ПУБЛИКАЦИЯ, подготовленная непосредственно службой технической поддержки Майкрософт . Сведения, содержащиеся в данном документе, предоставлены в качестве отклика на возникшие проблемы. Из-за срочности в материалах могут быть опечатки, и в любое время и без уведомления в них могут быть внесены изменения. Чтобы получить дополнительные сведения, см. Условия использования
(http://go.microsoft.com/fwlink/?LinkId=151500)
.СвойстваКод статьи: 948468 - Последнее изменение :: 19 июня 2011 г. - Редакция: 4.0 Информация в данной статье относится к следующим продуктам.
Переведено с помощью машинного перевода ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода. Эта статья на английском языке:948468
(http://support.microsoft.com/kb/948468/en-us/
)
|




Перейти к началу страницы








