Ознаки
Розглянемо таку ситуацію:
-
У вас проект Visual C++-2010. Вихідний код проекту, має структуру або класу, який перевищує 64 байт.
-
Створення проекту з на базі x64-платформи, а також використовується параметр /O2 компілятор.
-
Запуску застосунку.
У цьому випадку відбувається порушення доступу, а також аварійне завершення роботи програми.
Причина
Ця проблема виникає в тому, що на базі x64 компілятор Visual Studio 2010 оптимізує, код, змінивши розміщення вирівнювання дані 64 байт 16 байт. Таким чином, пам'ять-проблема виникає в тому, для об'єктів, що перевищує 64 байт.
Спосіб вирішення
Відомості про виправлення
Виправлення доступне від корпорації Майкрософт. Проте, це виправлення призначене тільки для вирішення проблеми, описаної в цій статті. Застосовуйте це виправлення лише до систем, які зазнають цієї конкретної проблеми. Це виправлення може отримати додаткове тестування. Тому, якщо ця проблема не сильно впливає на вас, ми рекомендуємо почекати наступного оновлення програмного забезпечення, що містить це виправлення. Щоб завантажити це виправлення MSDN Code Gallery, перейдіть на веб-сайт корпорації Майкрософт:
http://code.msdn.microsoft.com/KB2280741Примітка. MSDN Code Gallery, відображається список мов, для яких це виправлення доступне. Якщо ви не бачите мову у списку, це тому, що сторінка ресурсів для Code Gallery недоступна для цієї мови. Примітка. Якщо виникають додаткові проблеми, або потрібно виявлення проблем, можливо, доведеться створити окремий запит на обслуговування. Звичайні кошти на технічну підтримку будуть застосовуватися для додаткових питань і проблем, які не пов'язані з цим виправленням. Для повного списку телефонів служби підтримки користувачів і технічної підтримки, або щоб створити окремий запит на обслуговування відвідайте веб-сайт корпорації Microsoft:
http://support.microsoft.com/contactus/?ws=supportЦе виправлення також можна завантажити, відвідавши веб-сайт корпорації Майкрософт:
https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=31433
Попередні вимоги
Щоб застосувати це виправлення, слід інстальовано Visual Studio 2010.
Необхідність перезавантаження
Після інсталяції виправлення перезавантажити комп'ютер не потрібно.
Відомості про заміну виправлень
Це виправлення не замінює жодних інших виправлень.
Відомості про файл
Англійська версія цього виправлення на комп'ютері має атрибути файлів (або новіші атрибути файлів), подані в нижченаведеній таблиці. Значення дати й часу для цих файлів наведено за всесвітнім координованим часом (UTC). Переглядаючи відомості про файл, час конвертується у місцевий час. Щоб визначити різницю між UTC і місцевим часом, за допомогою вкладки часовий пояс у Дата й час на панелі керування.
Ім'я файлу |
Версія файлу |
Розмір файлу |
Дата |
Час |
Платформа |
---|---|---|---|---|---|
C2.dll |
16.0.30319.345 |
2,510,144 |
01-Aug-2010 |
23:42 |
x86 |
C2.dll |
16.0.30319.345 |
2,588,480 |
01-Aug-2010 |
23:42 |
x86 |
C2.dll |
16.0.30319.345 |
2,630,976 |
01-Aug-2010 |
23:42 |
x86 |
C2.dll |
16.0.30319.345 |
2,977,088 |
01-Aug-2010 |
23:42 |
x64 |
C2.dll |
16.0.30319.345 |
7,351,616 |
01-Aug-2010 |
23:42 |
IA-64 |
Інші способи вирішення
Щоб вирішити цю проблему, не використовуйте параметр компілятор /O2 під час створення проекту.
Стан
Корпорація Майкрософт підтвердила існування цієї неполадки у продуктах Майкрософт, перелічених у розділі "Застосовується до".