Vb.net 从类型转换为';字符串';输入';字符串';无效

Vb.net 从类型转换为';字符串';输入';字符串';无效,vb.net,casting,com-object,Vb.net,Casting,Com Object,我正在将一个用VBA编写的旧excel加载项移植到VB.NET。Excel加载项与许多外部com对象交互。代码排序如下所示: Dim hurr as Object Dim durr as String hurr = CreateObject("COM Object") durr = hurr.getString Dim hurr as Object Dim durr as String hurr = CreateObject("COM Object") durr = hurr.getStr

我正在将一个用VBA编写的旧excel加载项移植到VB.NET。Excel加载项与许多外部com对象交互。代码排序如下所示:

Dim hurr as Object
Dim durr as String

hurr = CreateObject("COM Object")
durr = hurr.getString
Dim hurr as Object
Dim durr as String

hurr = CreateObject("COM Object")
durr = hurr.getString()
我试图做的是从COM对象中读取字符串,并将其放入durr中,以便稍后在我的程序中使用

第二行导致上面发布的异常。如果我尝试用CStr/CType强制转换,我会得到相同的异常。visual studio监视窗口将hurr.getString的类型报告为“System.\uu ComObject”,而VBA监视窗口将该类型报告为“Variant/Object/String”。Microsoft.VisualBasic.Information.TypeName(hurr.getString)表示类型为“字符串”。我该怎么做才能让它工作呢


谢谢

这很可笑,但我想我会在这里发布答案,以确保完整性。解决方案是在hurr.getString的末尾添加一对括号

因此,工作代码如下所示:

Dim hurr as Object
Dim durr as String

hurr = CreateObject("COM Object")
durr = hurr.getString
Dim hurr as Object
Dim durr as String

hurr = CreateObject("COM Object")
durr = hurr.getString()
上面的代码给了我一个casting异常,无论出于什么原因,它都需要括号才能在这里工作。我只想补充一点,使用后期绑定com对象是可怕的,应该不惜一切代价避免