2013-04-03 32 views
6

Thư viện thời gian hoạt động cho Visual C++ (cụ thể hơn 2008) là một phần của hệ điều hành Windows ngày nay? Tôi nhận thấy rằng ít nhất là trên Windows 8 bạn không còn cần phải gửi chúng với các ứng dụng của bạn hoặc có người dùng cài đặt các gói redistributable từ Microsoft.Thư viện thời gian hoạt động Visual C++ có phải là một phần của hệ điều hành Windows hiện nay không?

Điều này có đúng không? Nếu vậy, đối với những gì các phiên bản Windows và cho những gì các phiên bản của Visual C++ hiện điều này áp dụng cho?

+1

Nhân tiện, nếu bạn cần phân phối một ứng dụng nhỏ phải chạy mà không phải cài đặt bất cứ thứ gì bạn luôn có tùy chọn liên kết tĩnh với CRT. –

+1

Hãy nhớ rằng điều tương tự cũng được nói về CRT VC6. Nếu bạn vẫn muốn tương thích với các phiên bản Windows trong tương lai, hãy tuân theo các quy tắc hiện nay. Microsoft có thể giới thiệu các thay đổi đột phá theo thời gian, nhưng chúng hầu như ảnh hưởng đến các chương trình không tuân theo các phương pháp hay nhất để bắt đầu. – MSalters

Trả lời

4

Không, chúng chưa bao giờ là một phần của bản phân phối Windows. Triển khai chính họ là một yêu cầu khó khăn.

Chắc chắn có thể dường như là. Bắt đầu với msvcrt.dll trong thư mục system32, nó có cùng tên với dll runtime C++ trong các phiên bản Visual Studio trước VS2002 (VS6 và trước đó). Tuy nhiên nó là một bản sao riêng của CRT được sử dụng bởi các tập tin thực thi Windows. Và được bảo vệ bởi tính năng Bảo vệ hệ thống tập tin trong Windows, ngăn các trình cài đặt cũ phá hủy hệ điều hành.

Nó chắc chắn thường hoạt động một cách tình cờ. Có nhiều chương trình cần có CRT của Microsoft nên không có khả năng người dùng đã chạy trình cài đặt trước khi cài đặt các tệp DLL. Rõ ràng bạn không thể phụ thuộc vào tai nạn chung đó.

Tương tự như đối với Windows 8, gói Microsoft.VCLibs.110 được cài đặt sẵn khớp với gói bạn cần cho ứng dụng Cửa hàng được viết bằng C++. Nhưng đó là lý do tương tự như trên, các chương trình Microsoft Store cũng được xây dựng với VS2012, giống như của bạn. Điều gì sẽ xảy ra trong VS2013 sắp tới là một chút lúng túng ngay bây giờ, chúng tôi sẽ sớm biết.

0

Theo tôi, câu trả lời sẽ là cả hai: Có và Không

  • : Hệ điều hành Windows More gần đây thường được vận chuyển với VC runtimes cài đặt sẵn (cùng với nhiều phiên bản gần đây của. Nền tảng NET). Đó là bởi vì Microsoft sử dụng Visual Studio mới nhất/mới hơn trước khi họ phát hành VS cho công chúng (hoặc thậm chí là các thuê bao MSDN). Nếu không theo cách này, bất cứ khi nào bạn cài đặt một số ứng dụng (ứng dụng kế thừa hoặc một số ứng dụng đã tải xuống), thiết lập sẽ cài đặt thời gian chạy VC++ bắt buộc. Một cách khác là thông qua cập nhật tự động.
  • Không: Trong trường hợp không áp dụng quy tắc nào nêu trên. Hoặc, khi thời gian chạy VC được vận chuyển với một gói dịch vụ mới hoặc một bản vá. Bạn có thể đã phát triển ứng dụng của mình với bản vá/SP mới hơn và phải được cài đặt (như Side-by-Side).