2012-01-30 11 views
8

Loại gói (x86 hoặc x64) có phụ thuộc vào loại ứng dụng của tôi hoặc loại hệ điều hành được cài đặt không?Gói VC + Redistributable nào để chọn (x86 hoặc x64)?

Ie, nếu tôi phát triển một ứng dụng 32-bit sao tôi cần phải

  • triển khai gói x86 chỉ hoặc
  • triển khai cả hai gói và cài đặt x86 trên Windows 32-bit và x64 trên 64-bit các cửa sổ?

Câu trả lời cho câu hỏi này 32-bit VC++ redistributable on 64 bit OS? cho thấy rằng nó chỉ là gói x86, vì vậy nó sẽ phụ thuộc vào ứng dụng của tôi nhưng nó không đưa ra bất kỳ lời giải thích/liên kết nào. Các trang web tải xuống MS cũng không cụ thể về điều này.

+3

Các gói phân phối lại không được cài đặt để hỗ trợ hệ điều hành của bạn, chúng được cài đặt để hỗ trợ ứng dụng của bạn. –

+0

... và phải được chọn để khớp với trình biên dịch của bạn. –

+0

@Ben: Tất nhiên, đối với Visual Studio 2008 tôi sẽ triển khai redistributables 2008 AndréCaron: bạn có nguồn cho điều đó không? –

Trả lời

6

Khi bạn biên dịch, tất cả việc sử dụng thư viện chuẩn sẽ tạo các tham chiếu phải được giải quyết tại thời gian liên kết. Trình liên kết khởi động trong thư viện nhập khẩu cho (các) DLL thời gian chạy phù hợp, phải khớp với hoàn toàn khi tải. Điều đó có nghĩa là phù hợp với phiên bản trình biên dịch, gói dịch vụ và bit.

Cũng nên nhớ rằng quy trình 32 bit không thể tải các tệp DLL 64 bit. Bởi vì các redist 64-bit chỉ chứa 64-bit DLL, nó là không có sự giúp đỡ khi tải một thực thi 32-bit.

0

tùy thuộc vào ứng dụng nếu bạn cần tối đa hóa tiềm năng của hệ điều hành 64 bit, bạn có thể triển khai cả hai để xử lý xử lý 64 bit và 32 bit. Tuy nhiên, nếu ứng dụng của bạn không vượt quá giới hạn 32 bit, bạn có thể triển khai ứng dụng trên x86, dù sao nó cũng sẽ hoạt động trên hệ điều hành 64 bit thông qua ảo hóa 32 bit.

+1

Tôi nghĩ rằng đó là sai: để tối đa hóa tiềm năng trên một hệ điều hành 64-bit tôi cần phải biên dịch nó như là một ứng dụng 64-bit. Câu hỏi đặt ra là: nếu tôi quyết định biên dịch một ứng dụng 32 bit, tôi có cần phân phối lại x64 trên hệ điều hành 64 bit không? –

+0

không thực sự. bạn có thể sử dụng 32-bit redistributable kể từ khi triển khai ứng dụng được nhắm mục tiêu là 32-bit, bạn sẽ chỉ cần các lệnh máy được thiết kế cho các bộ xử lý 32 bit. –