[in],[out],[in, out]和[out, retval]有什么区别?
从我读过的一些代码中,我认为[in]被用来向一个方法传递一个参数。[out, retval]是返回一个值。[in, out]用来表示我们可以覆盖这个参数,并且它是返回的参数。但是,我似乎可以在创建方法时更多地使用最后一个属性,为什么呢?那么,在这种情况下,[out]是什么?
我想我走错了轨道,有人能解释一下这些属性之间的区别吗?
发布于 2014-03-12 19:08:48
这些是用于规范IDL文件中COM接口方法参数的MIDL语言属性.说明符的含义来自它们的名称,通常可以理解为通过值(in)、引用(in、out)和返回值(out、retval)传递参数。out意味着只返回值,但通过参数传递,因此该方法可以返回多个值。
在文档中:[中]属性指定输入参数、[退出]只输出参数、[进,出]-输入和输出、[出去,雷瓦尔] -返回值.不要忘记,低级别的IDL描述可以使用这个COM对象在不同的语言中使用。例如,我们可以使用IDL描述(不严格):
// [out, retval] must be last
genererate([in] item_name, [out] size, [out, retval] res); 其用途如下:
var sz; // will be initialized in the COM-method
var res = FooObj.generate("new_item", sz); // FooObj is our COM-objecthttps://stackoverflow.com/questions/22360942
复制相似问题