我正在尝试将 winform 用户控件注册为 COM 服务器,以便我的 MFC 应用程序可以使用它们。winform 控件是用 C++/CLI 编写的,并使用非托管本机 dll。我想利用 .net 出色的互操作服务将此用户控件注册为 COM 服务器。
[ProgId("MyAx.MyAxControl")]
[ClassInterface(ClassInterfaceType::AutoDual)]
[Guid("612EAF58-ADCC-4e87-BC9E-FA208B037414")]
public ref class MyAxControl: public System::Windows::Forms::UserControl
MSDN说我可以使用regasm来实现我正在做的事情,所以我继续注册它
regasm MyAx.dll /tlb:MyAx.tlb
我什至生成了一个注册表项
regasm MyAx.dll /regfile:MyAx.reg
并将其与我的注册表合并
在这一点上,我预计当我为工具箱选择项目时,此控件将显示在我的 COM 组件中。然而它并没有出现在那里。这是预期的行为吗?如果是,我将如何在我的 MFC 应用程序中使用此控件,因为任何使用 Activex 控件的语言(比如 Java)。