Tôi cần phải kết buộc muộn với đối tượng COM VB6 bên thứ 3 trong ứng dụng 3,5 C# (để tránh các phụ thuộc phiên bản mà chúng tôi hiện có). Các dll được cung cấp không phải là tiêu hao trong hầu hết các cách không muộn do một số lỗi gây ra lỗi khi chúng ta cố gắng tiêu thụ nó bình thường. Hiện nay, chúng tôi đang sử dụng một wrapper VB6 tùy chỉnh mà làm cho mọi thứ VERY phiên bản cụ thể, tuy nhiên tôi đã tìm thấy rằng tôi có thể sử dụng cuối ràng buộc để truy cập tài sản và phương pháp. Bây giờ, tôi đang cố gắng để kết thúc muộn với các sự kiện, tuy nhiên tất cả mọi thứ tôi đã đọc nói rằng tôi cần phải kế thừa từ giao diện của trình bao bọc COM để tạo ra các bồn sự kiện cần thiết. Here is one such article.Làm thế nào để kết thúc sự kiện COM không có giao diện
Vì vậy, câu hỏi của tôi là liệu có thể thực hiện xử lý sự kiện bị ràng buộc trễ mà không có bất kỳ tham chiếu đến dll nào tại thời gian biên dịch không?
CẬP NHẬT
Dưới đây là những sai lầm tôi có với các wrapper VB6 (nào vẫn đang được cập nhật tích cực).
- Trong OleViewer, tôi nhận được
Không thể dịch ngược mục được chọn Lỗi tải loại thư viện/DLL. TYPE_E_CANTLOADLIBRARY ($ 80029C4A)
- Trong Visual Studio tôi nhận được:
Không thể xác định sự phụ thuộc của tham chiếu COM "3rdPartyDLL". Lỗi khi tải thư viện kiểu/DLL. (Ngoại lệ từ HRESULT: 0x80029C4A (TYPE_E_CANTLOADLIBRARY))
Tôi tò mò: các lỗi mà bạn thấy khi bạn cố gắng sử dụng đối tượng VB6 của bạn theo những cách bị ràng buộc sớm là gì? Tôi đã viết nhiều thành phần COM VB6 và chưa bao giờ có bất kỳ vấn đề với việc sử dụng bất kỳ của chúng trong bất kỳ môi trường khác (miễn là khách hàng hỗ trợ COM). Tại sao bạn thậm chí còn quan tâm đến việc phiên bản cho một thành phần VB6 - nó có được phát triển tích cực bởi tác giả của nó không? – xxbbcc
@xxbbcc Nó vẫn đang tích cực được phát triển và tôi cập nhật để hiển thị các lỗi –
@WhozCraig: VB6 sự kiện luôn là IDispatch chỉ dựa. – wqw