Tôi có đối tượng COM bên thứ 3 (32 bit) mà tôi cần gọi từ ứng dụng C# của tôi (64 bit). Tôi biết tôi phải chạy đối tượng COM trong một quy trình riêng biệt. Đối tượng COM này có nhiều lớp được triển khai trong nó, vì vậy tôi đang cố gắng tránh viết trình bao bọc từ xa của riêng tôi để lộ tất cả các phương thức. COM + có vẻ là giải pháp đơn giản nhất. Tôi mở menu Component Services, tạo một ứng dụng COM + mới, thêm đối tượng COM của tôi như là một thành phần cho ứng dụng này. Tất cả mọi thứ dường như nhập khẩu đẹp mắt.Gọi 32 bit COM từ C# đang chạy ở chế độ 64bit
Trong ứng dụng C# của tôi, tôi đã thêm đối tượng COM ban đầu làm tham chiếu (tự động tạo thư viện kiểu). Sử dụng tham chiếu thư viện kiểu, tôi có thể tạo các đối tượng từ thành phần COM + (tôi thấy chúng bắt đầu quay trong cửa sổ Thành phần dịch vụ), nhưng khi tôi cố truy cập vào các phương thức của đối tượng, tôi gặp lỗi khi nói giao diện không được đăng ký.
Có ai có đầu mối không? Tôi đã quay trở lại và chạy regsvr32 trên đối tượng COM, nhưng tôi không nghĩ rằng nó là cần thiết, và nó đã không giúp đỡ. Việc sử dụng của tôi trong C# có đúng không? Tự động hoàn thành VS2008 không có vấn đề gì khi nhìn thấy các phương thức đó.
Ngoại lệ chính xác là: "Giao diện không đăng ký (ngoại lệ từ HRESULT: 0x80040155)"
không rõ ràng về chính xác những gì các điều khoản và vai trò về trong Component Services, tôi đã cố gắng thiết lập COM + đối tượng nhận dạng để chạy dưới tài khoản hệ thống, cả hai như là một dịch vụ địa phương và là người dùng tương tác. Tôi đã thêm Mọi người làm người dùng trong Vai trò. Mọi thứ đang chạy cục bộ, vì vậy không nên có vấn đề với đặc quyền của tệp hoặc bất kỳ điều gì tương tự.
Tôi cũng muốn nhắc lại rằng đối tượng COM này chứa nhiều lớp. Tôi đã tạo thành công một đối tượng lớp trong ứng dụng khách của tôi và đặt một số giá trị thuộc tính. Tôi cũng khởi tạo thành công một đối tượng lớp khác, nhưng đã nhận ngoại lệ này khi cố gọi một phương thức của đối tượng thứ hai này .... vì vậy tôi không nghĩ rằng có vấn đề với đăng ký đối tượng COM của tôi được đăng ký.
COM + cực kỳ phụ thuộc vào quyền/quyền, v.v. có lẽ điều này đang xảy ra ... – Yahia
Windows hiệu quả có hai đăng ký khác nhau, một cho 32 và một cho 64 bit. Tôi tin rằng giao diện được đăng ký trong một và sau đó lookep trong khác. – GSerg
GSerg là chính xác. Nếu ứng dụng đăng ký nó là 32-bit, chạy trên hệ thống 64 bit, tất cả các mục đăng ký sẽ kết thúc trong nút nhân đôi WOW6432 thay vì nơi chúng thường đi. –