當我嘗試從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