我有一个.Net Com Dll可以使用这个dll并在c ++或MFC中创建.OCX文件。如果是,那么需要遵循的步骤是什么。如果有任何示例代码可用,那将是一个很好的帮助
答案 0 :(得分:4)
您可以使用regasm.exe工具将.NET程序集公开为COM对象。您可以使用[ComVisible(true)]
指示注册时COM客户端应该可以看到所有类。也可以在Visual Studio中的项目属性中设置此程序集级别属性。您也可以将它仅应用于某些需要导出的类。一旦程序集注册为COM对象,就可以像使用任何标准COM对象一样从非托管客户端实例化任何类。
答案 1 :(得分:3)
.ocx文件没有什么特别之处,它只是一个DLL。微软在4天的Visual Basic版本中提出了这个文件扩展名,这让VB程序员明白他们有一个包含控件的DLL。 ActiveX控件与16位日的VBX控件相反。
如果你创建了.NET程序集[ComVisible],那么你已经拥有了一个可以在其他项目中使用的COM服务器。如果您正确注册,.NET程序集必须使用Regasm.exe而不是Regsvr32.exe注册。使用Project + Properties,Build选项卡,“Register for COM interop”选项在.NET项目中自动完成。在安装时使用安装和部署项目。如果需要类型库,请将Regasm.exe与/ tlb和/ codebase选项一起使用。或Tlbexp.exe
如果这确实需要是传统的.ocx,换句话说有控件,那么你可以使用Winforms UserControl或从Winforms控件派生自己的类。 Winforms自动实现管道,使得从Control类中派生的类在ActiveX主机中正常运行。
答案 2 :(得分:0)
如果你想在普通的C ++中使用.NET库,有很多方法,主要涉及COM Interop。 Microsoft有一整段专门用于COM Interop的MDSN:http://msdn.microsoft.com/en-us/library/6bw51z5z%28v=VS.71%29.aspx。