当我尝试从Visual Foxpro COM服务器返回一个新对象到VBA时,我收到以下消息。 “运行时错误‘-2147417851(80010105)’:从Visual Foxpro COM服务器返回对象到VBA时出错
Method对象的“返回object'Itestclass失败”
如果我删除了“昏暗......作为”行错误消失,但那么我就失去了COM对象的智能感知。
这是VBA代码:
Sub Test()
'' Removing the following line gets rid of the error but loses intellisense for the COM object
Dim objTest As testcom.TestClass
Set objTest = CreateObject("TestCOM.TestClass")
Set objNew = objTest.ReturnObject '' This is the line that causes the error
End Sub
我创建了一个链接到工具的TestCOM类型库>参考
这里是在Visual FoxPro(VFP)代码: 的COM服务器作为一个进程EXE进行构建。如果我将它构建为进程.DLL,那么VBA代码会导致Excel崩溃。
DEFINE CLASS ObjectToReturn AS SESSION OLEPUBLIC
ENDDEFINE
DEFINE CLASS TestClass AS SESSION OLEPUBLIC
FUNCTION ReturnObject
RETURN CREATEOBJECT("ObjectToReturn")
ENDFUNC
ENDDEFINE
我曾试图改变RETURN CREATEOBJECT( “ObjectToReturn”)返回CREATEOBJECT( “自定义”),但问题仍然存在。
请告知我怎样才能摆脱这种错误又不失智能感知在VBA的COM对象。由于
这是RPC_E_SERVERFAULT,您的COM服务器引发异常。为什么是不可猜测的。 –
@ hans-passant感谢您的额外信息。基于症状,我'猜测'这是与早期与晚期绑定和类型库有关,但除此之外,我迷路了。 – Caltor
我无法想象我是唯一一个曾经希望从VFP返回一个对象到VBA的对象,而不会失去智能感知,即早期绑定 – Caltor