Objawy
Rozważ następujący scenariusz:
-
Tworzenie aplikacji w programie Microsoft Visual C++ 2010.
-
Użyj funkcji fopen() w aplikacji do otwierania pliku, a funkcja używa trybu dostępu r +lub + .
-
Uruchamianie aplikacji i próbuje otworzyć plik, który jest równy lub większy niż 4 gigabajty (GB).
W tym scenariuszu plik nie zostanie otwarty lub zwrócony następujący błąd:
EINVAL (nieprawidłowy argument)
Przyczyna
Ten problem występuje ze względu na sposób fopen() funkcja dąży do końców pliki po ich otwarciu dołączania. Fopen() funkcja używa wewnętrznie _lseek() funkcja do wykonania tej akcji. Jednak funkcja lseek() nie może obsłużyć pliki, które są równe lub większe niż 4 GB.
Rozwiązanie
Ta poprawka zmienia zachowanie rodziny fopen() funkcji. Po zastosowaniu tej poprawki fopen() funkcja używa wewnętrznie funkcji, która może starać się poza limit 4 GB bez zwróceniem błędu. W szczególności fopen() funkcja funkcja _lseeki64() zamiast _lseek() funkcja.
Informacje o poprawce
Obsługiwana poprawka jest obecnie udostępniana przez firmę Microsoft. Jednak jest ona przeznaczona do usunięcia tylko problemu opisanego w tym artykule. Zastosuj ją tylko w systemach, w których występuje ten problem.
Aby rozwiązać ten problem, skontaktuj się z biurem obsługi klienta Microsoft w celu uzyskania poprawki. Aby uzyskać pełną listę numerów telefonów pomocy technicznej firmy Microsoft oraz informacje o kosztach, odwiedź następującą witrynę sieci Web firmy Microsoft:http://support.microsoft.com/contactus/?ws=supportUwaga W wyjątkowych przypadkach opłaty za połączenie z pomocą techniczną mogą zostać anulowane, jeśli specjalista firmy Microsoft zdecyduje że określona aktualizacja, może rozwiązać Twój problem. Koszty obsługi zwykłych zastosuje się do dodatkowych pytań i problemów, których nie można rozwiązać przy użyciu określonej aktualizacji.
Wymagania wstępne
Aby zastosować tę poprawkę, musisz mieć zainstalowane Microsoft Visual Studio 2010 z dodatkiem Service Pack 1 (SP1).
Wymagania dotyczące ponownego uruchomienia
Należy ponownie uruchomić komputer po zainstalowaniu tej poprawki, jeśli są używane pliki podlegające usterce.
Informacje dotyczące zastępowania poprawek
Ta poprawka nie zastępuje wcześniej wydanej poprawki.
Informacje o plikach
Wersja globalna ma atrybuty plików (lub nowsze) wymienione w poniższej tabeli. Daty i godziny odpowiadające tym plikom zostały podane w formacie uniwersalnego czasu koordynowanego (UTC, Coordinated Universal Time). Po wyświetleniu informacji o pliku są konwertowane na czas lokalny. Aby zobaczyć różnicę między czasem UTC i czasem lokalnym, należy użyć z karty Strefa czasowa w aplecie Data i godzina w Panelu sterowania. Wszystkie obsługiwane wersje programu Microsoft Visual Studio 2010 z dodatkiem SP1
Nazwa pliku |
Wersja pliku |
Rozmiar pliku |
Data |
Godzina |
Platforma |
---|---|---|---|---|---|
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 |
Więcej informacji
Aby uzyskać więcej informacji na temat innego pakietu poprawek, który dotyczy pakietu redystrybucyjnego oprogramowania Microsoft Visual C++ 2010 z dodatkiem Service Pack 1 (SP1) kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
NAPRAW 2606060 : nie można otworzyć pliku, który jest co najmniej 4 GB do dołączania lub zapisu danych za pomocą aplikacji, która używa pakietu Visual C++ 2010 do dystrybucji Aby uzyskać więcej informacji na temat funkcji fopen() i _wfopen() odwiedź następującą witrynę MSDN:
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji „Dotyczy”.