一个简单的C#DLL-如何从Excel,Access,VBA,VB6调用它?

我有一个用C#编写的简单类库。

using System;

namespace TestDll

{

public class Test

{

public string HelloWorld

{

get

{

return "Hello World";

}

}

}

}

我的问题是如何从Microsoft Office Visual Basic(我认为是VB6)中调用此HelloWorld函数?

我的第一步是添加DLL作为参考-但是在浏览和选择编译的DLL时,显示消息“无法向指定文件添加参考”。被扔了。

谁能为我指出正确的方向,说明为什么/如何使其正常工作?

在此先感谢!

回答:

您不能通过COM互操作访问静态成员。实际上,您的代码甚至都没有编译,该方法应该在一个类中。这是您可以执行的操作:

[InterfaceType(ComInterfaceType.InterfaceIsDual)]

[Guid("01A31113-9353-44cc-A1F4-C6F1210E4B30")] //Allocate your own GUID

public interface _Test

{

string HelloWorld { get; }

}

[ClassInterface(ClassInterfaceType.None)]

[Guid("E2F07CD4-CE73-4102-B35D-119362624C47")] //Allocate your own GUID

[ProgId("TestDll.Test")]

public class Test : _Test

{

public string HelloWorld { get { return "Hello, World! "; } }

}

在项目属性的“构建”选项卡上,选择“注册COM互操作”。这样您可以快速查看结果。要将dll安装在另一台计算机上,您需要使用regasm。

要消耗掉这个:

Dim o : Set o = CreateObject("TestDll.Test")

MsgBox o.HelloWorld

您还可以引用dll并使用早期绑定:

Dim o As TestDll.Test

Set o = New TestDll.Text

MsgBox o.HelloWorld

以上是 一个简单的C#DLL-如何从Excel,Access,VBA,VB6调用它? 的全部内容, 来源链接: utcz.com/qa/419205.html

回到顶部