1
我想在一个免费的Pascal项目使用ActiveX对象时,从文档我知道一个方法声明为使用在免费帕斯卡尔的ActiveX方法VARIANT *参数的
long Fetch(VARIANT* vValue)
其中vVariant会调用后包含结果(整数或浮点值)。
的LazActiveX“导入类型库”功能转换这
_SomeApi = dispinterface
['...']
...
function Fetch(vValue: OleVariant):Integer;
...
end;
我正要OleVariant有点惊讶,因为只有简单数据类型应返回。当使用v:OleVariant调用Fetch(v)时,我还得到了EOleSysError(类型不匹配)。
任何人都可以向我解释如何在TLB中正确声明此方法或如何访问数据?不幸的是,我没有Fetch()的源码,其中一些内容由NDA覆盖...
必须是OleVariant类型的输出参数。不要相信进口商。自己做。但OleVariant是正确的。变体只包含简单类型的事实并不改变其变体的事实。 –
试试这个:function Fetch(vValue:^ TVarData):Integer; – yms
不要相信进口商。相信Heffernan先生。使用“var”参数完成了这项工作,谢谢! – LeRookie