读书人

怎么实现带COM接口的EXE文件

发布时间: 2012-01-05 22:36:54 作者: rapoo

如何实现带COM接口的EXE文件?
我想在vb.net或者c#里实现类似在VB6中的ActiveX Exe这样的类型,就是带COM接口的EXE文件。我知道在vb.net和c#里已经没有这种ActiveX Exe的概念,可是如果必须实现类似这样的结果,哪位有没有什么办法?
或者用vb.net或者c#作一个ActiveX控件,再做一个EXE文件来调用?这样和ActiveX Exe有一点点相像。
不知道能不能实现实实在在的在EXE文件中带COM接口这样的情况?

[解决办法]
SF
[解决办法]
http://support.microsoft.com/kb/184630
[解决办法]
参考

1、
using System;
using System.EnterpriseServices;
using System.Runtime.InteropServices;
namespace wmc.com
{
public interface ICom
{
string SayHello(string name);
}

    class Com1:ServiceComponent,ICom
{
public Com1(){}
public string SayHello(string name)
{
return name+“ say hello”;
}
}
}


2、
创建一个强名称
Sn k mykey.snk
3、
在AssemblyInfo.cs中修改:

[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile(“mykey.snk”)]
[assembly: AssemblyKeyName(“”)]
重新生成程序集
Mykey.snk和可执行文件在同一目录下


4、
安装共享程序集
Gacutil /i myShared.dll

5、
为COM+部署程序集
使用工具:RegSvcs.exe

6、客户端调用
Dim cls as DotNetLib1.ICom
Set cls = new DotNetLib1.Com1
Msgbox cls.SayHello(“Sadam”)

读书人网 >VB Dotnet

热点推荐