Triệu chứng
Hãy xem xét tình huống sau:
-
Bạn có một dự án Visual C++ 2010. Mã nguồn của dự án có cấu trúc lớp vượt quá 64 byte.
-
Bạn tạo dự án cho một x64 dựa trên nền tảng và bạn sử dụng tùy chọn biên dịch /O2 .
-
Bạn chạy ứng dụng.
Trong trường hợp này, một sự vi phạm truy cập xảy ra và ứng dụng lỗi.
Nguyên nhân
Sự cố này xảy ra vì trình biên soạn x64 dựa trên Visual Studio 2010 tối ưu hóa mã bằng cách điều chỉnh phân bổ chỉnh dữ liệu từ 64 byte 16 byte. Vì vậy, vấn đề bộ nhớ xảy ra đối tượng vượt quá 64 byte.
Giải pháp
Thông tin về cập nhật nóng
Cập nhật nóng được hỗ trợ do Microsoft cung cấp. Tuy nhiên, cập nhật nóng này chỉ được dùng để khắc phục sự cố được mô tả trong bài viết này. Chỉ áp dụng cập nhật nóng này cho hệ thống đang gặp sự cố cụ thể này. Cập nhật nóng này có thể được kiểm tra thêm. Vì vậy, nếu bạn không bị ảnh hưởng nghiêm trọng bởi sự cố này, chúng tôi khuyên bạn đợi bản cập nhật phần mềm tiếp theo có chứa cập nhật nóng này. Để tải xuống hotfix này từ thư viện mã MSDN, hãy ghé thăm website sau của Microsoft:
http://code.msdn.microsoft.com/KB2280741Chú ý Thư viện mã MSDN Hiển thị các ngôn ngữ mà hotfix này sẵn có. Nếu bạn không thấy ngôn ngữ của bạn được liệt kê, đó là do trang tài nguyên thư viện mã này hiện không có ngôn ngữ đó. Chú ý Nếu sự cố khác xảy ra hoặc nếu cần khắc phục sự cố, bạn có thể phải tạo một yêu cầu dịch vụ riêng. Chi phí hỗ trợ thông thường sẽ tính cho các câu hỏi hỗ trợ bổ sung và các sự cố không phù hợp với cập nhật nóng cụ thể này. Để có danh sách đầy đủ số điện thoại của Bộ phận Hỗ trợ và Dịch vụ Khách hàng của Microsoft hoặc để tạo yêu cầu dịch vụ riêng, hãy truy cập website sau của Microsoft:
http://support.microsoft.com/contactus/?ws=supportBạn cũng có thể tải xuống hotfix này bằng cách truy cập website sau của Microsoft:
https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=31433
Điều kiện tiên quyết
Để áp dụng hotfix này, bạn phải cài đặt Visual Studio 2010.
Yêu cầu khởi động lại
Bạn không phải khởi động lại máy tính sau khi bạn áp dụng hotfix.
Thông tin thay thế hotfix
Hotfix này không thay thế bất kỳ hotfix nào khác.
Thông tin về tệp
Phiên bản tiếng Anh của cập nhật nóng này có các thuộc tính tệp (hoặ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ờ chuẩn quốc tế (UTC). Khi bạn xem thông tin về tệp, tệp đó đã đượ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.
Tên tệp |
Phiên bản tệp |
Kích thước tệp |
Ngày |
Giờ |
Nền |
---|---|---|---|---|---|
C2.dll |
16.0.30319.345 |
2,510,144 |
01-Aug-2010 |
23:42 |
x86 |
C2.dll |
16.0.30319.345 |
2,588,480 |
01-Aug-2010 |
23:42 |
x86 |
C2.dll |
16.0.30319.345 |
2,630,976 |
01-Aug-2010 |
23:42 |
x86 |
C2.dll |
16.0.30319.345 |
2,977,088 |
01-Aug-2010 |
23:42 |
x64 |
C2.dll |
16.0.30319.345 |
7,351,616 |
01-Aug-2010 |
23:42 |
IA-64 |
Giải pháp
Để khắc phục sự cố này, không sử dụng tùy chọn biên dịch /O2 khi bạn tạo dự án.
Trạng thái
Microsoft đã xác nhận đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".