应该不可以,一定要转换成VB.NET不对之处还望指出。

解决方案 »

  1.   

    可以!
    我亲眼见过例子
    ms-help://MS.NETFrameworkSDK.CHS/cpguidenf/html/cpconexposingnetframeworkcomponentstocom.htm
    看看这个,你本机的framework文档。
      

  2.   

    有关VB客户端的例子参见
    <FrameworkSDK>\Samples\Technologies\Interop\Applications\bank 的自述文件
      

  3.   

    注册为com,vb代码就可以调用了.
      

  4.   

    由于C#是基于.NET Framework的,而VB6则不是,所以如果VB6要调用的话就算注册为COM组件也会有问题,难道不装.NET Framework可以使用C#的COM吗?所以结论是否定的,这是本人的意见
      

  5.   

    to songbird(快乐鸟)
       我查看过本机的framework文档,找不到你说的那个例子,麻烦你看看你给的这个地址:
    ms-help://MS.NETFrameworkSDK.CHS/cpguidenf/html/cpconexposingnetframeworkcomponentstocom.htm是否正确?谢谢!
      

  6.   

    如果要向 COM 应用程序公开程序集中的类型,应考虑 COM Interop 在设计时的要求。如果符合以下原则,托管类型(类、接口、结构和枚举)将与 COM 类型无缝集成: 类应显式实现接口。 
    虽然 COM Interop 提供了一种机制来自动生成包含类的所有成员及其基类成员的接口,但最好提供显式接口。自动生成的接口称作类接口。有关指南,请参阅类接口简介。 您可以使用 Visual Basic .NET、C# 和 C++ 托管扩展将接口定义包含在代码中,而不必使用接口定义语言 (IDL) 或其等效语言。有关语法的详细信息,请参阅您所用语言的文档。如需包含接口定义的示例代码,请参阅 .NET 服务器。 托管类型必须是公共的。 
    只有程序集中的公共类型才会注册并导出到类型库中。因此,只有公共类型才对于 COM 可见。 托管类型将向其他未向 COM 公开的托管代码公开功能。例如,参数化的构造函数、静态方法和常数字段不会向 COM 客户端公开。此外,当运行库在类型中和类型外封送数据时,可能会复制或转换数据。 方法、属性、字段和事件必须是公共的。 
    如果要对于 COM 可见,公共类型的成员也必须是公共的。通过应用 ComVisibleAttribute,可以限制程序集、公共类型或公共类型的公共成员的可见性。默认情况下,所有公共类型和成员都是可见的。 类型必须有一个公共默认构造函数才能从 COM 中激活。 
    托管的公共类型对于 COM 是可见的。但是,如果没有公共默认构造函数(无参数的构造函数),COM 客户端将无法创建该类型。如果该类型由其他方法激活,则 COM 客户端仍可使用该类型。 类型不能是抽象的。 
    COM 客户端和 .NET 客户端都不能创建抽象的类型。 当导出到 COM 后,托管类型的继承层次结构将被展平。在托管和非托管环境之间,版本控制也会有所不同。向 COM 公开的类型不具有与其他托管类型相同的版本控制特性。
      

  7.   

    为了能够被com程序调用,.net的dll必须具有以上特性。
    然后利用如下工具处理你的dll。类型库导出程序
    类型库导出程序 (Tlbexp.exe) 是一种命令行工具,它用于将包含在程序集中的类和接口转换为 COM 类型库。当类的类型信息成为可用时,COM 客户端就可以创建 .NET 类的一个实例并调用该实例的方法,就好像它是 COM 对象一样。Tlbexp.exe 将同时转换整个程序集。不能使用 Tlbexp.exe 生成程序集中定义的类型子集的类型信息。TypeLibConverter 类
    TypeLibConverter 类(位于 System.Runtime.Interop 命名空间)可将包含在程序集中的类和接口转换为 COM 类型库。此 API 与上节所述的类型库导出程序生成相同的类型信息。TypeLibConverter class 实现 ITypeLibConverter 接口。程序集注册工具
    当应用 /tlb: 选项时,程序集注册工具 (Regasm.exe) 可生成并注册类型库。COM 客户端要求将类型库安装在 Windows 注册表中。如果不使用此选项,Regasm.exe 将只注册程序集(而不是类型库)中的类型。注册程序集中的类型和注册类型库是截然不同的活动。.NET 服务安装工具
    .NET 服务安装工具 (Regsvcs.exe) 可将托管类添加到 Windows 2000 组件服务中,并在一个工具中组合了多项任务。除了加载和注册程序集之外,Regsvcs.exe 还可以生成、注册类型库并将其安装到现有的 COM+ 1.0 应用程序中。
      

  8.   

    您可以使用 Visual Basic .NET、C# 和 C++ 托管扩展将接口定义包含在代码中,而不必使用接口定义语言 (IDL) 或其等效语言。有关语法的详细信息,请参阅您所用语言的文档。如需包含接口定义的示例代码,请参阅 .NET 服务器。 Visual Basic .NET ?
      

  9.   

    关于那个例子,你查找一下本机包含interop的文件夹就可以找到了。我试过真的可用!调用窗口类都没问题!
      

  10.   

    HNU:这里说的是VB.net,c#或者VC++.net生成的.net类库