从“String”类型到“String”类型的转换无效

时间:2009-12-21 19:47:16

标签: vb.net casting com-object

我正在将一个在VBA中写入的旧excel插件移植到VB .NET中。 Excel插件与许多外部com对象进行交互。代码sorta如下所示:

Dim hurr as Object
Dim durr as String

hurr = CreateObject("COM Object")
durr = hurr.getString

我要做的是从COM对象中读取字符串并在durr中获取它以便稍后在我的程序中使用。

第二行会导致上面发布的异常。如果我尝试使用CStr / CType进行转换,我会得到相同的异常。 visual studio watch窗口将hurr.getString的类型报告为“System .__ ComObject”,而VBA监视窗口将类型报告为“Variant / Object / String”。 Microsoft.VisualBasic.Information.TypeName(hurr.getString)表示类型为“String”。任何想法我应该如何让这个工作?

谢谢!

1 个答案:

答案 0 :(得分:1)

这很荒谬,但我想我会在这里发布完整的答案。解决方案是在hurr.getString

的末尾添加一对括号

所以工作代码如下所示:

Dim hurr as Object
Dim durr as String

hurr = CreateObject("COM Object")
durr = hurr.getString()

上面的代码给了我一个转换异常,无论出于什么原因它需要括号才能在这里工作。我只想补充一点,使用后期绑定com对象非常糟糕,应该不惜一切代价避免使用。