我现在要写一个COM组件,由于我写的这个程序需要调用另外几个VB6写的COM程序,而这几个VB6的COM程序是没有强命名的,因此造成.Net的项目也无法进行强命名,有什么办法可以在不进行强命名的情况下注册为COM组件吗?
因为如果我将项目属性中的 为COM Interop注册勾上以后只要编译程序,VS就会将该程序注册到系统中,别的程序可以一直调用,因此我想肯定是有办法可以实现的。就是不知道VS是怎么注册的。
如果问题解决我将本帖追加到100分,先谢过了!

解决方案 »

  1.   


    给你个我测试的例子: [ComVisible(true)]
      public interface IMath
      {
      [DispId(1)]
      int Add(int a, int b);  [DispId(2)]
      int Sub(int a, int b);
      }[ComVisible(true)]
      [ClassInterface(ClassInterfaceType.None)]
      public class Dotnet :ServicedComponent, IMath
      {
      #region IMath 成员  public int Add(int a, int b)
      {
      return a+b;
      }  public int Sub(int a, int b)
      {
      return a - b;
      }  #endregion
      } 
      

  2.   

    ServicedComponent不知道在哪个命名空间啊?
    我用的是VS2005。
      

  3.   

    找到了。要先引用System.EnterpriseServices.dll,我先试试看。
      

  4.   

    兄弟,好歹你查查MSDN啊,这么简单的事情,为什么还问出来!  System.EnterpriseServices 
      

  5.   

    有劳 突破自我 兄了,试了一下,貌似也不行啊。
    用regasm注册后依然不能使用。