ВИПРАВЛЕННЯ. Файли Windows Common Controls Mscomctl.ocx або Comctl32.ocx можуть призводити до неочікуваного завершення роботи програм або середовища Visual Basic 6 IDE, або ж може з’явитися повідомлення про помилку "Ділення на нуль"

Переклади статей Переклади статей
Номер статті: 896559 - Показ продуктів, яких стосується ця стаття.
Примітка
Базова підтримка програми Microsoft Visual Basic 6.0 завершилася 31 березня 2005 року. Корпорація Майкрософт випускає цей пакет, не пов’язаний із безпекою, оскільки він містить удосконалення, які були готові до випуску безпосередньо перед завершенням базової підтримки. Програму Visual Basic 6.0 було переведено в режим розширеної підтримки, яка тривала до 31 березня 2008 року. Корпорація Майкрософт у жодному разі не продовжуватиме базову підтримку програми Visual Basic 6.0.
Розгорнути все | Згорнути все

На цій сторінці

Ознаки

Існує дві версії загальних елементів керування Microsoft Windows. Файл Comctl32.ocx містить загальні елементи керування Windows версії 5.0 і входить до складу програми Microsoft Visual Studio 5.0. Файл Mscomctl.ocx містить загальні елементи керування Windows версії 6.0 і входить до складу програми Microsoft Visual Studio 6.0. Це виправлення усуває зазначені нижче критичні помилки згаданих елементів керування.

Загальні елементи керування Windows версії 5.0: Comctl32.ocx

Розгляньмо таку ситуацію:
  • Ви запускаєте програму, яка встановлює обробник WinEvent для Microsoft Windows 2000 або пізнішої операційної системи.
  • Ви запускаєте програму, яка використовує елемент керування ListView або TreeView, який входить до загальних елементів керування Microsoft Windows 5.0.
У такому разі може відбутися неочікуване завершення роботи програми або з’явитися таке повідомлення про помилку:
Project1: Project1.exe - Помилка програми
Інструкція за адресою "0x202d0f51" звернулася до пам'яті за адресою "0x40000001". Пам'ять не вдалося "записати". Натисніть кнопку "ОК", щоб завершити роботу програми
Примітка. Зазвичай програми спеціальних можливостей на базі Microsoft Active Accessibility встановлюють обробник WinEvent. Наприклад, екранний диктор працює на базі Microsoft Active Accessibility. Однак утиліти, що виконуються на пристроях під керуванням ОС Microsoft Windows XP Tablet PC Edition, також встановлюють обробник WinEvent.

Загальні елементи керування Windows версії 6.0: Mscomctl.ocx

Якщо виконується програма, яка використовує версію 6.1.97.64 або новішу версію файлу Mscomctl.ocx, і ця програма містить елемент керування ListView, а для властивості AllowColumnReorder встановлено значення True, – під час спроби перевпорядкувати стовпці з’являється таке повідомлення про помилку:
Project1: Project1.exe - Помилка програми
Інструкція за адресою "0x27618848" звернулася до пам'яті за адресою "0x016e1e90". Пам'ять не вдалося "прочитати".
Залежно від настройок налагоджувача за замовчуванням для вашої системи, може з’явитися повідомлення "0xC0000094 ділення на нуль" або ж відбутися неочікуване завершення роботи програми.

Примітка. Якщо програму запущено в середовищі Visual Basic 6 IDE, можуть виникнути обидві ці проблеми.

причина

Проблема із загальними елементами керування Windows 5.0 виникає через те, що файл Comctl32.ocx намагається скопіювати елемент тексту елемента ListView з використанням маски LVI_IMAGE, яка має ПУСТИЙ елемент тексту.

Проблема із загальними елементами керування Windows 6.0 виникає через зміну у версії 6.1.97.64 файлу Mscomctl.ocx. Версія 6.1.97.64 входить до складу поточного виправлення 826287. Ця версія файлу Mscomctl.ocx змінює поведінку елемента керування ListView, якщо програму Visual Studio 6.0 запущено на комп’ютері під керуванням Windows XP або пізнішої операційної системи. Переважна більшість викликів елемента керування ImageList у файлі Mscomctl.ocx – це оболонки викликів усередині класу загального керування ImageList, який визначено у файлі Comctl32.dll. Однак метод ImageList_GetImageRect не переноситься. Цей метод, як і раніше, використовує попередню версію структури ImageList і попередню версію класу елемента керування ImageList, які визначені у файлі Mscomctl.ocx file. Це спричиняє помилку "Ділення на нуль" під час перевпорядкування стовпців.

Розв'язанн

Увага! Якщо програму, що виконується, надав сторонній виробник, зверніться до нього, перш ніж інсталювати виправлення. Наприклад, ви не розробляли програму самостійно. Якщо інсталювати виправлення без відповідної перевірки, це може спричинити припинення роботи програми.

Примітка. Закрите виправлення не можна скасувати або видалити після інсталяції.

Цей файл можна завантажити на сайті Центру завантажень Microsoft:
Згорнути це зображенняРозгорнути це зображення
Завантажити
Завантажити пакет загальних елементів керування Visual Basic 6.0.
http://www.microsoft.com/downloads/details.aspx?FamilyId=25437D98-51D0-41C1-BB14-64662F5F62FE
Докладні відомості про завантаження файлів підтримки Microsoft див. у такій статті бази знань Microsoft:
119591 Відомості про отримання файлів підтримки Microsoft з онлайнових служб.
Цей файл перевірено корпорацією Майкрософт на наявність вірусів. Корпорація Майкрософт перевірила цей файл за допомогою найновішого програмного забезпечення для виявлення вірусів, доступного на час публікації цього файлу. Файл зберігається на добре захищених серверах. Це запобігає внесенню до нього будь-яких несанкціонованих змін.

Доступне підтримуване виправлення від корпорації Майкрософт для програми Visual Basic 6 SP6.
Англійська версія цього виправлення має атрибути файлів, наведені в таблиці нижче (або новіші атрибути файлів). Значення дати й часу для цих файлів наведено за всесвітнім координованим часом (UTC). Під час перегляду відомостей про файл ці дані оновлюються відповідно до місцевого часу. Щоб визначити різницю між часом UTC і місцевим часом, відкрийте вкладку Часовий пояс у діалоговому вікні "Дата й час" панелі керування.
   Дата         Час   Версія      Розмір    Ім’я файлу
   ------------------------------------------------------
   18 серпня 2003 р.  20:25  6.0.81.6   1 344 512  Comctl32.ocx     
   02 листопада 2004 р.  00:16  6.1.97.86  1 064 208  Mscomctl.ocx     

Стан

Корпорація Майкрософт підтвердила наявність цієї помилки у своїх продуктах, перелічених у розділі "Застосовується до".

Додаткові відомості

Докладні відомості див. у таких статтях бази знань Microsoft:
827217 ВИПРАВЛЕННЯ. Порушення прав доступу до файлу Comctl32.ocx в ОС Windows 2000 або пізнішої версії
824684 Опис стандартної термінології, яка використовується для опису оновлень програмного забезпечення Microsoft

Властивості

Номер статті: 896559 - Востаннє переглянуто: 30 серпня 2013 р. - Редакція: 3.0
Застосовується до:
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Studio 6.0 Enterprise Edition
Ключові слова: 
kbqfe kbvs600sp6 kbpending kbbug KB896559

Надіслати відгук

 

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