使用COM互操作從VBA代碼調用C#方法時,參數的限制是什麼?類型不匹配錯誤使用COM互操作從VBA調用C#dll
我發現如果我調用一個只需要一個簡單類型(string,int等)的方法,但它調用一個將自定義類作爲參數的方法失敗 - 使用'Type Mismatch'編譯VBA代碼時出錯。
C#代碼:
public namespace foo {
public class XXX { }
public class Service {
public setString(String val) { ... }
public setXXX(XXX val) { ... }
}
}
VBA代碼:
Dim service As New foo.Service
service.setString("this works")
Dim complexClass as New foo.XXX
Rem This fails with a type mismatch error
service.setXXX(complexClass)
如上所述,所述VBA編譯扼流圈在這條線:service.setXXX(complexClass)
任何想法?
對不起,不發佈一個答案。相反,我有一個建議:如果你要做任何大量的COM-interop(使用r.NET消耗COM對象,或COM對象通過COM-Callable-Wrapper訪問.NET對象,請自行購買本書:http://www.amazon.com/NET-COM-Complete-Interoperability-Guide/dp/067232170X如果它不在那本書中,你不需要知道它 – Yoopergeek 2010-01-07 19:41:15
XXX是否實現了任何接口? – 2010-01-07 20:39:04