2009-07-09 20 views
5

Tôi có một thành phần COM 32 bit được sử dụng chủ yếu bởi ASP, chúng tôi cũng có phiên bản 64 bit.Các thành phần COM 32 bit và 64 bit của tôi có thể cùng nằm trên cùng một máy không?

Phiên bản 64 bit có chức năng giống hệt nhau và nó cũng sử dụng cùng một ProgID (và theo như tôi biết cùng CLSID, v.v.).

Tôi có thể cài đặt/sao chép phiên bản 64 bit trên cùng một máy như phiên bản 32 bit (rõ ràng trong một thư mục khác) và ứng dụng 32 bit hiện tại của tôi tiếp tục sử dụng thành phần 32 bit hay không phiên bản 64 bit?

Đây là các thành phần mã gốc được viết bằng C++ chứ không phải .NET.

Trả lời

7

Điều này có thể thực hiện được.

Trên cửa sổ 64 bit, các registryfile system được chuyển hướng cho các ứng dụng 32 bit. Đăng ký cho dll COM 32-bit sẽ nằm dưới một vị trí riêng trong registry (HKLM \ Software \ Wow6432Node \ Classes), và các thành phần COM của bạn nên sống trong các thư mục riêng biệt, 64-bit trong Program Files và 32-bit trong Program Files (x86). Việc chuyển hướng đăng ký/tập tin cho các ứng dụng 32 bit nên làm cho công việc này một cách minh bạch.

Có thể chính thành phần đó có thể ngăn chặn điều này - ví dụ, nếu nó tạo ra các tài nguyên toàn cầu sẽ làm nảy sinh xung đột giữa các phiên bản 32 bit và 64 bit.

Tình trạng này đã tồn tại trên Windows 64 bit. Trên hệ thống 64-bit của tôi, tôi có:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Classes \ CLSID {8856F961-340A-11D0-A96B-00C04FD705A2} \ InprocServer32 \ Default = C: \ Windows \ SysWOW64 \ Ieframe.dll

HKEY_CLASSES_ROOT \ CLSID {8856F961-340A-11D0-A96B-00C04FD705A2} \ InprocServer32 \ Default = C: \ Windows \ System32 \ Ieframe.dll

32-bit và 64-bit phiên bản của WebBrowser kiểm soát trên cùng một hệ thống.

+0

Đó là những gì tôi hy vọng có thể xảy ra, nhưng Reed có vẻ như đang đề xuất khác. Tôi không thể thử nó ngay bây giờ bởi vì tôi không có quyền truy cập vào một môi trường thử nghiệm 64 bit tôi có thể clobber nếu nó phá vỡ một cái gì đó. – Kev

+0

@Kev: đây là lỗi của tôi. Michael đúng ở đây. –

+0

Tôi chỉ tìm thấy một máy tôi có thể kiểm tra điều này và tất cả đều hoạt động tốt. :) – Kev

Các vấn đề liên quan