VB6能否调用.Net程序集?如果可以方法是?

解决方案 »

  1.   

    要明白一点,net是是基于framework的这点VB不具备你在NET中间可以引用vb的com,但是VB很难引用NET的哈这个主要是体系都不一样
      

  2.   

    把.Net程序集注册到Com+程序中,再通过CreateObject 行不?
      

  3.   

    用VB.NET或C++Me写个COM包装以下,让VB调用
      

  4.   

    OK,我自己实现了。方法如下:
    1.用sn -k sgKey.snk 创建.Net程序集的密钥对,以后为程序集使用强名称用;
    2.在类代码中添加EnterpriseServices引用,并使你的类继承它:
    using System;
    using System.Windows.Forms;
    using System.EnterpriseServices;namespace ClassLibraryTest
    {
    /// <summary>
    /// Class2 的摘要说明。
    /// </summary>
    public class Class1: ServicedComponent
    {
    public Class1()
    {
    //
    // TODO: 在此处添加构造函数逻辑
    //
    Form newFrom = new Form();
    newFrom.Show();
    }
    }
    }3.在AssemblyInfo.cs文件中设定密钥对文件所在位置:
    [assembly: AssemblyKeyFile(@"..\..\sgKey.snk")]4.生成解决方案;
    5.将生成的DLL拖到组件管理器某个空Com+应用程序中;
    6.在VB6中调用:
        Dim obj As Object
        Set obj = CreateObject("ClassLibraryTest.Class1")