Причини
Розглянемо таку ситуацію:
-
Створення застосунку в Microsoft Visual C++ 2010 року.
-
Використання функції fopen() програми для відкриття файлу, а функція використовує- r +або + режим доступу.
-
Запуску застосунку а в applicationtries відкрити файл, який дорівнює або перевищує 4 гігабайти (ГБ).
У цьому випадку файл не відкривається або повертається така помилка:
EINVAL (неприпустимий аргумент)
Причина
Ця проблема виникає через спосіб fopen() функції, шукає на кінець файли, після того, як його відкриття файлів для додавання. Функція fopen() внутрішньо функція _lseek() для виконання цієї дії. Однак, функція _lseek() не може обробити дорівнює або перевищує 4 ГБ.
Вирішення
Це виправлення, зміни поведінки родини fopen() функції. Після застосування цього виправлення, функція fopen() внутрішньо використовується функція, що можуть звернутися за межі 4 Гб, не повертаючись повідомлення про помилку. Зокрема, функція fopen() функція _lseeki64() замість _lseek() функції.
Відомості про виправлення
Корпорація Майкрософт випустила підтримуване виправлення доступна. Проте призначена для вирішення проблеми, які описано в цій статті. Він придатний лише для систем, які зазнають цієї конкретної проблеми.
Щоб вирішити цю проблему, зверніться до служби підтримки Microsoft, щоб отримати виправлення. Повний перелік телефонів служби підтримки користувачів Microsoft а також відомості про вартість обслуговування відвідайте веб-сайт корпорації Майкрософт:http://support.microsoft.com/contactus/?ws=supportПримітка. В окремих випадках оплату звернення до служби підтримки може бути скасовано якщо технічної підтримки Майкрософт визначить, що телефонів служби. Плата стягується на додаткові питання і проблеми, які не пов'язані з оновленням.
Попередні вимоги
Щоб застосувати це виправлення, слід Microsoft Visual Studio 2010 пакет оновлень 1 (SP1) інстальовано.
Необхідність перезавантаження
Можливо, доведеться перезавантажити комп'ютер, після інсталяції цього виправлення, якщо задіяні файли, які використовуються.
Відомості про заміну виправлень
Це виправлення не замінює попередні виправлення.
Відомості про файли
Універсальна версія, має атрибути файлів (або новіші атрибути файлів) подані в нижченаведеній таблиці. Значення дати й часу для цих файлів наведено за всесвітнім координованим часом (UTC). Переглядаючи відомості про файл, час конвертується у місцевий час. Щоб визначити різницю між UTC і місцевим часом, використайте вкладку Часовий пояс у Дата й час на панелі керування. Для всіх підтримуваних версій ОС Microsoft Visual Studio 2010 SP1
Ім'я файлу |
Версія файлу |
Розмір файлу |
Дата |
Час |
Платформа |
---|---|---|---|---|---|
Mfcm100.dll |
10.0.40219.362 |
82,696 |
15-Nov-2011 |
22:32 |
x86 |
Mfcm100d.dll |
10.0.40219.362 |
104,720 |
16-Nov-2011 |
00:29 |
x86 |
Mfcm100u.dll |
10.0.40219.362 |
82,704 |
15-Nov-2011 |
22:32 |
x86 |
Mfcm100ud.dll |
10.0.40219.362 |
106,256 |
16-Nov-2011 |
00:29 |
x86 |
Mfcm100.dll |
10.0.40219.362 |
93,960 |
15-Nov-2011 |
21:54 |
x64 |
Mfcm100d.dll |
10.0.40219.362 |
120,592 |
15-Nov-2011 |
23:56 |
x64 |
Mfcm100u.dll |
10.0.40219.362 |
93,968 |
15-Nov-2011 |
21:54 |
x64 |
Mfcm100ud.dll |
10.0.40219.362 |
122,128 |
15-Nov-2011 |
23:56 |
x64 |
Mfcmifc80.dll |
10.0.40219.362 |
14,096 |
16-Nov-2011 |
21:26 |
x86 |
Додаткові відомості
Щоб отримати додаткові відомості про іншого пакета виправлень для завантажити пакет вторинного розповсюдження Microsoft Visual C++ 2010 з пакетом оновлень 1 (SP1) клацніть номер статті в базі знань Microsoft Knowledge Base:
ВИПРАВЛЕННЯ в 2606060 : не вдається відкрити файл, що є принаймні 4 Гб, додавати або записати дані за допомогою застосунку, який використовує Visual C++ 2010 пакет вторинного розповсюдження Щоб отримати додаткові відомості про функції fopen() і _wfopen() відвідайте такий веб-сайт MSDN:
Стан
Корпорація Майкрософт підтвердила існування цієї неполадки у продуктах Майкрософт, перелічених у розділі "Застосовується до".