如何实现带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”)