C# 使用.Net 4和VS2010创建ActiveX.exe
我的应用程序是vb6应用程序,它引用delphi active.exe文件。 我需要用C#one替换这个文件。 如何使用VS 2010和C#创建activeX exe (不用说,我不能使用activeX exe以外的文件)有一个问题。它具体规定: Visual Basic 2005升级向导不支持升级Visual Basic 基本6 ActiveX EXE 因此,至少Microsoft工具不支持基于原始VB6代码从.NET生成ActiveX EXE。(这并不意味着不可能有另一条路线。)C# 使用.Net 4和VS2010创建ActiveX.exe,c#,visual-studio-2010,C#,Visual Studio 2010,我的应用程序是vb6应用程序,它引用delphi active.exe文件。 我需要用C#one替换这个文件。 如何使用VS 2010和C#创建activeX exe (不用说,我不能使用activeX exe以外的文件)有一个问题。它具体规定: Visual Basic 2005升级向导不支持升级Visual Basic 基本6 ActiveX EXE 因此,至少Microsoft工具不支持基于原始VB6代码从.NET生成ActiveX EXE。(这并不意味着不可能有另一条路线。) 另一种方法
另一种方法是将其转换为常规的.NET COM互操作DLL,这要容易得多,但您可能需要它运行完DLL无法完成的进程。据我所知,VB6 ActiveX EXE本质上是一个进程外COM服务器 (很可能有一些微妙之处,这意味着这些概念并不完全相同,但我认为这是主要的想法) 从.NET创建进程外COM服务器似乎有几种方法 下面是我读到的所有不同的基本技巧的摘要
[A]一种方法是使用“代理”进程托管DLL。注意,这类似于在32位和64位之间进行交叉调用的技术 通过描述一种方法,关键点如下:
- 步骤1:使用COM可见类型和 接口
- 步骤2:为COM互操作注册.NET程序集
- 台阶 3:在GAC中安装.NET程序集
- 步骤4:配置 程序集的默认COM代理进程
- 第五步:激活你的 使用CLSCTX_本地_服务器的COM对象
[B1]第二种方法是通过以下方式创建一个“” 通过将.NET EXE程序集完全伪装为COM本地服务器 满足合同规定的此类服务器的所有要求 COM规范 说明这样做符合以下要求,并举例说明: 提供类工厂类(实现COM IClassFactory接口),用于我们要导出的每个.NET类 通信 正确插入EXE程序集的注册表项, 包括LocalServer32密钥 恰当地呼唤 这些工厂上的CoreRegisterClassObject()和CoRevokeClassObject() 上课
[B2]看起来像什么。它指出: 该示例演示了一个进程外COM服务器,其形式为 本地服务器(EXE),完全用Visual C#实现 这可能在一些技术细节上有所不同(我还没有真正评估这可能有多大的根本不同。)
[C]另一种方法可能是“使用
System.EnterpriseServices.ServicedComponent
创建COM+组件”(即)。不幸的是,本文没有回答我的问题。我需要开发一个文件,将取代现有的一个不接触应用程序或创建包装。你熟悉这样做的方法吗?这能回答你的问题吗?