一个简单的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.TestSet o = New TestDll.Text
MsgBox o.HelloWorld
以上是 一个简单的C#DLL-如何从Excel,Access,VBA,VB6调用它? 的全部内容, 来源链接: utcz.com/qa/419205.html