【发布时间】:2011-03-28 23:26:02
【问题描述】:
我正在尝试调用一个需要 2 个字符串的方法,你就是代码
VARIANT vArgs[2];
VariantInit(&vArgs[0]);
VariantInit(&vArgs[1]);
//VariantInit(&vArgs[2]);
//vArgs[2].pdispVal = pDisptEntries;
vArgs[1].bstrVal = bstrSrc;
vArgs[0].bstrVal = bstrtrgt;
vArgs[0].vt = VT_BSTR;
vArgs[1].vt = VT_BSTR;
//vArgs[2].vt = VT_DISPATCH;
dpEntry.rgvarg = vArgs;
dpEntry.cArgs = 2;
dpEntry.cNamedArgs = 0;
//dpEntry.rgdispidNamedArgs = new DISPID[2];
//dpEntry.rgdispidNamedArgs[0] = 0;
//dpEntry.rgdispidNamedArgs[1] = 1;
UINT index = -1;
EXCEPINFO ex;
hr = pDisptEntries->Invoke(dispid_Add, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD,
&dpEntry, NULL, &ex, &index);
【问题讨论】:
-
该特定错误消息通常是由于一个(或多个)方法参数的类型错误 - 例如,它需要一个 int 并且您给了它一个字符串。如果不知道您正在调用的对象的详细信息,很难确切地说出了什么问题,但我会说“添加”类型的方法通常没有源字符串和目标字符串作为参数。