Poprawka: Nie można otworzyć pliku, który jest co najmniej 4 GB do dołączania lub zapisu danych przy użyciu aplikacji Visual C++ 2010

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:

Ogólne informacje na temat funkcji fopen() i _wfopen()

Stan

Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji „Dotyczy”.

Potrzebna dalsza pomoc?

Rozwijaj swoje umiejętności
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów firmy Microsoft

Czy te informacje były pomocne?

Dziękujemy za opinię!

Dziękujemy za opinię! Wygląda na to, że połączenie Cię z jednym z naszych agentów pomocy technicznej pakietu Office może być pomocne.

×