2009-11-09 72 views
0

我正在從CF4.5升級到CF8。調用COM 4.0 dll的版本現在在4.5版本中工作,現在會拋出一個「複雜對象類型無法轉換爲簡單值..」的錯誤。 COM對象有幾個數組定義爲輸出參數。這些變量被定義爲Coldfusion中的數組。有什麼想法可以改變CF導致這個問題,我能做些什麼來解決它?ColdFusion COM錯誤

編輯:

這是CF代碼:

Arg2 = ArrayNew(1); 
answer = ComObject.Test(1,"Arg2");  <------This line throws the error 

的VB的ActiveX DLL的代碼:

Public Function AddNumbers(number1 As Integer, ByRef Arg2() As String) As String 
    AddNumbers = "hello" 
End Function 
+0

請表明引發錯誤的代碼。 – Tomalak 2009-11-09 13:22:37

回答

0

我懷疑某處陣列被視爲一個數或字符串。沒有代碼示例,將很難提供任何更多的幫助。您可能想要在訪問數組中的位置時檢查索引的處理方式。

UPDATE

嘗試改變

answer = ComObject.Test(1,"Arg2"); 

answer = ComObject.Test(1,Arg2); 

OR

answer = ComObject.Test(1,arrayToList(Arg2)); 
+0

感謝您的建議。我曾嘗試過第一個。拋出的錯誤是:java.lang.ClassCastException:coldfusion.runtime.Array不能轉換爲java.lang.String。您的第二個建議會拋出錯誤: coldfusion.runtime.java.MethodSelectionException:未找到AddNumbers方法.. 可能是因爲方法簽名未被識別。我也在創建comobject變量後立即拋出了comobject變量,這是結果(省略了一些行): AddNumbers([out,in] I2,[out,in] BSTR,[out,retval] BSTR) 注意到第二個參數不被識別爲數組。 – yuben 2009-11-11 05:59:26