Bỏ qua để tới nội dung chính
Đăng nhập với Microsoft
Đăng nhập hoặc tạo một tài khoản.
Xin chào,
Chọn một tài khoản khác.
Bạn có nhiều tài khoản
Chọn tài khoản bạn muốn đăng nhập.

Triệu chứng

Khi bạn tạo một chương trình bằng cách sử dụng Microsoft Visual C++ 2013, chương trình lỗi và bạn nhận được một ngoại lệ "Hướng dẫn bất hợp pháp". Điều này xảy ra do một số chức năng thư viện floating-point toán trong thời gian chạy Visual C++ 2013 x64 C (CRT) không đúng cách kiểm tra xem các hướng dẫn AVX và FMA3 có trước khi các chức năng cố gắng sử dụng chúng. Nếu không có sẵn để sử dụng hướng dẫn, các cuộc gọi các chức năng gây ra ngoại lệ bất hợp pháp hướng dẫn (0xc000001d). Chức năng bị ảnh hưởng bao gồm đăng nhập, log10, pow, và những người khác.

Vấn đề này có nhiều khả năng xảy ra trong các trường hợp sau:

  • Một phiên bản cũ của hệ điều hành Windows, hỗ trợ AVX trạng thái tiết kiệm (ví dụ: Windows Vista) nếu nó được sử dụng trên máy tính hỗ trợ tập lệnh AVX

  • Nếu AVX trạng thái tiết kiệm rõ ràng vô hiệu hóa trong cấu hình khởi động hệ điều hành

  • Trong môi trường cài đặt trước của Windows (Windows PE)

    Lưu ý Windows PE hỗ trợ AVX trạng thái tiết kiệm.


Sự cố này xảy ra trên Microsoft Connect:

x64 chức năng log() sử dụng hướng dẫn AVX vpsrlq bất kể hệ điều hành (để treo trên Vista x64)

Visual Studio 2013 RTM: C++ x64 mã lỗi hệ AVX2 hướng dẫn

Nguyên nhân

Sự cố này xảy ra vì thời gian chạy Visual C++ 2013 x64 C không kiểm tra xem hệ điều hành hỗ trợ AVX trạng thái tiết kiệm trước khi cố gắng chạy hướng dẫn AVX hoặc FMA3.

Giải pháp

Nếu tất cả nhị phân C++ bị ảnh hưởng được tạo bằng cách sử dụng Visual C++ 2013 sử dụng C Runtime DLL (msvcr120.dll), cài đặt bản cập nhật Microsoft Visual C++ 2013 Redistributable-12.0.40660.0 hoặc phiên bản mới hơn.

Nếu bạn bị ảnh hưởng C++ nhị phân tĩnh liên kết Visual C++ 2013 C chạy, bạn phải cập nhật cài đặt Visual Studio 2013 cài đặt 3174417 hotfix và xây dựng lại bố trí những chương trình bị ảnh hưởng.









Lưu ý Sự cố này không ảnh hưởng đến các phiên bản cũ hơn của Visual C++ C Runtime (Visual C++ 2012 và các phiên bản). Sự cố được khắc phục trước khi phát hành ban đầu của CRT phổ biến sử dụng Visual C++ 2015.

Trung tâm Tải xuống của Microsoft

Để cập nhật liên kết tĩnh Visual C++ 2013 C Runtime, 3174417 hotfix được phát hành dưới dạng bản Cập Nhật chỉ tải xuống và không cung cấp thông qua Windows Update. Nó có sẵn tại trang web Microsoft Download Center:

Download Tải xuống ngay bây giờ.

Cập nhật tự động được liên kết Visual C++ 2013 C Runtime dll, bản Cập Nhật redistributable có sẵn. Để biết thêm thông tin, hãy xem bài viết sau trong cơ sở kiến thức Microsoft:

3179560 Cập Nhật cho Visual C++ 2013 và Visual C++ Redistributable Package

Giải pháp

Để khắc phục sự cố này, tắt FMA3 trong thư viện toán nếu bạn bị ảnh hưởng bởi sự cố này. Bạn có thể truy vấn định hệ thống hỗ trợ hướng dẫn AVX gọi GetEnabledXStateFeatures và vô hiệu hoá AVX trong CRT rõ ràng bằng cách gọi _set_FMA3_enable(0).

Để biết thêm thông tin, xem làm việc với XState ngữ cảnhtrên các trang web MSDN.

Chức năng _set_FMA3_enable(0) được tuyên bố < math.h > và được cung cấp chỉ khi bạn xây dựng cho x64. (Này vấn đề ảnh hưởng đến chỉ x64 thư viện.) Điều này khiến thư viện toán trở lại bằng cách sử dụng triển khai FMA3.

Bạn cần thêm trợ giúp?

Bạn muốn xem các tùy chọn khác?

Khám phá các lợi ích của gói đăng ký, xem qua các khóa đào tạo, tìm hiểu cách bảo mật thiết bị của bạn và hơn thế nữa.

Cộng đồng giúp bạn đặt và trả lời các câu hỏi, cung cấp phản hồi và lắng nghe ý kiến từ các chuyên gia có kiến thức phong phú.

Thông tin này có hữu ích không?

Bạn hài lòng đến đâu với chất lượng dịch thuật?
Điều gì ảnh hưởng đến trải nghiệm của bạn?
Khi nhấn gửi, phản hồi của bạn sẽ được sử dụng để cải thiện các sản phẩm và dịch vụ của Microsoft. Người quản trị CNTT của bạn sẽ có thể thu thập dữ liệu này. Điều khoản về quyền riêng tư.

Cảm ơn phản hồi của bạn!

×