IDL定义的propget函数的“函数不接受0参数”错误(给出一个参数)

时间:2014-06-27 17:06:45

标签: c++ idl

我正在研究一个C ++ DLL,它使用IDL文件与另一个程序的API进行通信。我试图在另一个程序的.idl中调用一个以下列方式定义的函数:

[propget, id(1014), helpstring("The user defined attribute on the feature using the name of the attribute")] HRESULT UserAttribute([in] BSTR attr_id, [out, retval] VARIANT *pVal);

这是我在DLL中的方法调用:

VARIANT *res = udf->UserAttribute(BSTR("version"));

然而,当我尝试编译程序时,我收到此错误:

1>ApplicationSink.cpp(378): error C2660: 'IFMFeature::GetUserAttribute' : function does not take 0 arguments

行号是针对上面引用的行;我上面引用的行也是UserAttribute方法出现在DLL中任何位置的唯一行。所以我知道错误实际上并没有引用代码中的另一个地方,我在没有参数的情况下调用它。此外,我正在使用API​​中的许多其他功能,没有任何问题,因此我认为问题不在于API。我还编写了成功使用UserAttribute函数的VB宏,所以我知道它至少在某些情况下有效。

我正在调用UserAttribute,但错误是在谈论GetUserAttribute - 可能是因为它正在做一些与UserAttribute被定义为propget函数这一事实有关的幕后魔术? API中没有定义GetUserAttribute函数。

有谁知道这里发生了什么以及如何解决它?

0 个答案:

没有答案