【发布时间】:2012-01-30 15:24:14
【问题描述】:
我正在尝试使用以下方法定义调用 c++ IDispatch 接口:
ATL HRESULT TestFunc(long Command, [in, out] long* pData, [in, out] BSTR* pString, [out, retval] long* pRC);
// ...
Type t = Type.GetTypeFromProgID( "IMyTestInterfce" );
Object so = Activator.CreateInstance(t);
Object[] args = new Object[3];
args[0] = -8017;
args[1] = 0;
args[2] = "";
Object result = so.GetType().InvokeMember("TestFunc", BindingFlags.InvokeMethod, null, so, args);
调用的结果是类型不匹配,但我不知道为什么。
InnerException = {"类型不匹配。(来自 HRESULT 的异常:0x80020005 (DISP_E_TYPEMISMATCH))"}`
谢谢
【问题讨论】:
-
@Ramhound 我通常会,但在这种情况下,我需要使用后期绑定。