Tôi cần phát triển một số lớp cần gọi từ VB6 với Managed C++ (C++/CLI).Tạo một assembly COM có thể nhìn thấy từ managed C++ (C++/CLI)
Tôi đã phát triển mẫu đầu tiên trong C# và tôi có thể sử dụng cụm từ thông qua COM mà không gặp sự cố chỉ sử dụng cài đặt "Đăng ký COM interop" và "Make assembly COM visible" (và sử dụng thuộc tính [ClassInterface (ClassInterfaceType) .AutoDual)] để tạo các phương thức có sẵn tại VB6
Sau đó tôi đã cố gắng dịch mẫu sang C++/CLI mà không thành công. Tôi đã tạo cùng một lớp với thuộc tính [ClassInterface (ClassInterfaceType.AutoDual)]. đã thiết lập các "nhúng IDL" thiết lập để xác định đầu ra TLB nhưng TLB không được tạo ra tự động.Nếu tôi sử dụng tlbexp util trên DLL tạo ra tôi nhận được một tlb có thể được nhập khẩu tại VB6 nhưng khi tôi cố gắng tạo ra một ví dụ Tôi nhận được một "ActiveX compoennt không thể tạo đối tượng (429) "
Tôi cần làm gì hơn với dự án để cho phép nó chạy?
Xin cảm ơn trước.
Tôi đang đăng ký lắp ráp tự động với tlbexp, phải không? Tùy chọn/tlb được báo cáo là không được trình biên dịch và trình liên kết không nhận ra. Bạn có chắc chắn về điều đó không? –
Không, tlbexp chỉ tạo thư viện kiểu, không có gì được đăng ký. Tùy chọn/tlb là cho Regasm.exe, không phải trình biên dịch hoặc trình liên kết. Nó khiến tôi rất khó hiểu rằng bạn không nhận được điều đó từ bài đăng của tôi. –
Nó phải là một cái gì đó liên quan với ở đây là một chút muộn. Tôi đã đọc lại bài đăng của bạn và tôi bối rối như bạn :) –