Khi đăng ký lớp được quản lý cho COM Interop bằng tay, cần có một số khóa đăng ký nhất định. Ví dụKhóa 'Danh mục được triển khai' có cần thiết khi đăng ký thành phần Managed COM không?
HKEY_CLASSES_ROOT
CLSID\[My Cls Id]
InprocServer32
(Default) = "mscoree.dll"
Assembly = [My assembly name]
etc.
tôi đã nhận thấy rằng khi VS đăng ký một thư viện cho COM Interop, nó cũng cho biết thêm một chìa khóa
HKEY_CLASSES_ROOT
CLSID\[My Cls Id]
Implemented Categories
{62C8FE65-4EBB-45e7-B440-6E39B2CDBF29}
phím này là gì, và nó là hoàn toàn cần thiết? Theo như tôi có thể nói, cuộc sống diễn ra tốt đẹp mà không có nó, nhưng có lẽ tôi không gặp phải những hoàn cảnh cần thiết.
Hans - cảm ơn câu trả lời hữu ích. Bạn có nghĩa là "một chương trình .NET không thể sử dụng máy chủ COM được triển khai bằng ngôn ngữ * un * được quản lý" thay vì "ngôn ngữ được quản lý"? Thông tin thêm về CATID tại http://msdn.microsoft.com/en-us/magazine/cc301432.aspx –
@Simon: không, máy chủ COM thường được triển khai bằng ngôn ngữ không được quản lý. –