【发布时间】:2022-01-15 23:11:34
【问题描述】:
我创建了一个用 C# 编写的 COM dll。它已成功注册,我正在尝试在 VB 脚本中访问它。我能够创建 COM 的对象并能够执行第一个方法调用。
当我尝试使用第一个方法调用返回的对象执行第二个方法调用 (msg = app.getSubDomainConn(domain)) 时,我收到以下错误。我已经发布了 VBscript 和 C# 代码。
有人可以帮忙吗?
错误:无效的过程调用或参数:“getValidConnectionMsg”
代码:800A0005
来源:Microsoft VBScript 运行时错误
dim app
Set app = CreateObject("myCOM.myObject.")
app.uri=<URI>
app.username=<User>
app.password=<pwd>
Dim domain
Set domain = app.getDomain()
domain.ok = true;
wscript.echo domain.name
dim msg
msg = app.getSubDomainConn(domain)
这里是 C# 代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace myCOM
{
public class myObject
{
public String uri = "";
public String username = "";
public String password = "";
public IDomain getDomain()
{
String msg = "";
IDomain domain = null;
try
{
// Get domain Connection
IConnection conn = Factory.Connection.GetConnection(uri);
UserCredentials creds = new UsernameCredentials(username, password);
// Get domain.
domain = Factory.Domain.Get(conn);
}
catch (Exception exc)
{
Console.WriteLine(exc.ToString());
}
return domain;
}
public String getValidConnectionMsg(IDomain domain)
{
String isDomainAvailable = "Not Available";
if (domain != null)
{
isDomainAvailable = domain.Name;
}
return isDomainAvailable;
}
}
}
【问题讨论】:
-
你have been asked在这个问题的previous incarnation下:“你的代码中是否有
getValidConnectionMsg?” -
是的 getValidConnectionMsg 是我的 C# 代码的一部分。我已经在我的帖子中给出了该代码。
-
错误来自 VBScript。您没有从 VBScript 调用
getValidConnectionMsg,因此您不会收到该错误。相反,您从 VBScript 调用getSubDomainConn,它甚至没有作为方法出现在myObject中。这就是为什么你被问到,getValidConnectionMsg 是否在你的代码中。 -
为什么要删除之前的问题,而不是只删除editing it?删除问题意味着所有 cmets 都将丢失。