Симптоми
Да разгледаме следния сценарий:
-
Създавате приложение в Microsoft Visual C++ 2010.
-
Можете да използвате функцията fopen() в приложението за отваряне на файл и използва режим на r +, или + достъп.
-
Стартирате приложението и applicationtries, за да отворите файл, който е равен или по-голям от 4 гигабайта (ГБ).
В този случай файлът се отваря или се връща следното съобщение за грешка:
EINVAL (невалиден аргумент)
Причина
Този проблем възниква поради начина, по който функцията fopen() търси до края на файлове, след това се отваря файловете за добавяне. Функцията fopen() вътрешно използва функцията _lseek() да извършите това действие. Обаче функцията _lseek() не можем да обработим файлове, които са равни или по-големи от 4 ГБ.
Решение
Тази актуална корекция се променя поведението на фамилията fopen() функции. След като приложите тази актуална корекция, функцията fopen() използва вътрешно функция, която може да поиска над 4 ГБ лимит без да се връща съобщение за грешка. По-конкретно функцията fopen() използва функцията _lseeki64() вместо _lseek() функция.
Информация за актуалната корекция
Вече се предлага от Microsoft предоставя поддържана актуална корекция. Но тя е предназначена да коригира само проблема, тази статия. Прилагайте корекцията само към системи, изпитващи този конкретен проблем.
За да разрешите този проблем, се обърнете към услугите за поддръжка на клиенти на Microsoft да получите актуалната корекция. За пълен списък на телефонните номера на отдела за поддръжка на Microsoft и информация за цените на поддръжката посетете следния уеб сайт на Microsoft:
http://support.microsoft.com/contactus/?ws=supportЗабележка: При специални случаи таксите, които са за свързани с поддръжката обаждания могат да бъдат отменени, ако специалист по поддръжката на Microsoft прецени, че конкретна актуализация може да разреши проблема. Обичайните такси за поддръжката ще важат за допълнителни въпроси и проблеми, които не спадат към съответната актуализация.
Необходими условия:
За да приложите тази актуална корекция, трябва да имате Microsoft Visual Studio 2010 Service Pack 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 Service Pack 1 (SP1) щракнете върху следния номер на статия в базата знания на Microsoft:
2606060 FIX: не можете да отворите файл, който е поне 4 GB за добавяне или записване на данни чрез приложение, което използва Visual C++ 2010 Redistributable пакет
За повече информация относно функциите fopen() и _wfopen() посетете следния уеб сайт на MSDN:
Статус
Microsoft потвърждава, че това е проблем в продуктите на Microsoft, изброени в раздела "Отнася се за".