Khắc phục: Bạn không thể mở tệp tối thiểu 4 GB thêm hoặc ghi dữ liệu bằng cách sử dụng một ứng dụng Visual C++ 2010

Áp dụng cho: Visual Studio 2010 ProfessionalVisual Studio 2010 Ultimate

Triệu chứng


Xem xét tình huống sau:
  • Bạn tạo một ứng dụng trong Microsoft Visual C++ 2010.
  • Bạn sử dụng chức năng fopen() trong ứng dụng để mở tệp, và sử dụng chức năng r +, mộthoặc một + truy cập chế độ.
  • Bạn chạy ứng dụng và các applicationtries mở tệp bằng hoặc lớn hơn 4 gigabyte (GB).

Trong trường hợp này, tệp không mở hoặc bị trả về lỗi sau:
EINVAL (đối số không hợp lệ)

Nguyên nhân


Sự cố này xảy ra do cách chức fopen() tìm cách để kết thúc tệp sau đó mở tệp để. Hàm fopen() nội bộ sử dụng hàm _lseek() để thực hiện thao tác này. Tuy nhiên, hàm _lseek() không thể xử lý tệp bằng hoặc lớn hơn 4 GB.

Giải pháp


Hotfix này thay đổi hành vi của họ fopen() chức năng. Sau khi bạn áp dụng hotfix này, hàm fopen() nội bộ sử dụng một chức năng có thể tìm kiếm vượt quá giới hạn 4 GB không trả lại lỗi. Cụ thể, hàm fopen() sử dụng hàm _lseeki64() thay vì chức năng _lseek() .

Thông tin về cập nhật nóng

Microsoft hiện đã cung cấp bản cập nhật nóng được hỗ trợ. Tuy nhiên, nó là nhằm sửa chỉ vấn đề bài viết này mô tả. Áp dụng cho các hệ thống đang gặp sự cố cụ thể này.

Để khắc phục sự cố này, hãy liên hệ với dịch vụ hỗ trợ khách hàng Microsoft để lấy hotfix. Để biết danh sách đầy đủ số điện thoại Dịch vụ hỗ trợ khách hàng của Microsoft và thông tin về chi phí hỗ trợ, ghé thăm website sau của Microsoft:Lưu ý Trong trường hợp đặc biệt, chi phí thường phát sinh cho cuộc gọi hỗ trợ có thể bị hủy bỏ nếu chuyên viên hỗ trợ Microsoft xác định rằng một Cập Nhật cụ thể sẽ giải quyết vấn đề của bạn. Chi phí hỗ trợ thông thường sẽ áp dụng cho các vấn đề không phù hợp với bản Cập Nhật cụ thể trong câu hỏi và câu hỏi hỗ trợ bổ sung.

Điều kiện tiên quyết

Để áp dụng hotfix này, bạn phải có Microsoft Visual Studio 2010 gói dịch vụ 1 (SP1) được cài đặt.

Yêu cầu khởi động lại

Bạn có thể phải khởi động lại máy tính sau khi bạn cài đặt hotfix này nếu tệp bị ảnh hưởng đang được sử dụng.

Thông tin thay thế cập nhật nóng

Cập nhật nóng này không thay thế cập nhật nóng được phát hành trước đó.

Thông tin về tệp

Phiên bản toàn cầu này có thuộc tính tệp (hoặc các thuộc tính tệp mới hơn) được liệt kê trong bảng sau. Ngày và giờ của các tệp này được liệt kê theo Giờ Quốc tế Phối hợp (UTC). Khi bạn xem thông tin về tệp, ngày và giờ được chuyển đổi thành giờ địa phương. Để tìm sự khác nhau giữa UTC và giờ địa phương, sử dụng tab Múi Giờ trong mục Ngày và Giờ trong Pa-nen điều khiển.

Đối với tất cả các phiên bản được hỗ trợ của Microsoft Visual Studio 2010 SP1

Tên tệpPhiên bản tệpKích thước tệpNgàyGiờNền tảng
Mfcm100.dll10.0.40219.36282,69615-Nov-201122:32x86
Mfcm100d.dll10.0.40219.362104,72016-Nov-201100:29x86
Mfcm100u.dll10.0.40219.36282,70415-Nov-201122:32x86
Mfcm100ud.dll10.0.40219.362106,25616-Nov-201100:29x86
Mfcm100.dll10.0.40219.36293,96015-Nov-201121:54x64
Mfcm100d.dll10.0.40219.362120,59215-Nov-201123:56x64
Mfcm100u.dll10.0.40219.36293,96815-Nov-201121:54x64
Mfcm100ud.dll10.0.40219.362122,12815-Nov-201123:56x64
Mfcmifc80.dll10.0.40219.36214.096 người16-Nov-201121:26x86

Thông tin


Để biết thêm chi tiết về gói hotfix khác áp dụng cho Microsoft Visual C++ 2010 Service Pack 1 (SP1) Redistributable Package, hãy bấm vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:

2606060 khắc phục: bạn không thể mở tệp tối thiểu 4 GB thêm hoặc ghi dữ liệu bằng cách sử dụng ứng dụng sử dụng Visual C++ 2010 Redistributable gói


Để biết thêm chi tiết về các hàm fopen() _wfopen() , ghé thăm website sau của MSDN:

Trạng thái


Microsoft đã xác nhận rằng đây là sự cố trong sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".