这个问题可能是你传入函数的变量类型与函数定义的变量类型不一样,我的问题就是这样的,从其他工程里面复制进来的,我不知道为什么,人家头文件里函数是这样定义的
void put_Size(float newValue)
{
static BYTE parms[] = VTS_R4 ;
InvokeHelper(0x8d, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, newValue);
}
我复制过去,就成这样了,可能是我把头文件复制错了吧
void put_Size(VARIANT& newValue)
{
static BYTE parms[] = VTS_VARIANT ;
InvokeHelper(0x68, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, &newValue);
}
所以用f.put_Size(18);的时候就报错,点进函数才发现变量类型不一样。我是把put_Size函数改成和原来的工程一样的了。