变体数组可以有 0 个元素吗?
普通动态数组支持空(= nil, Length() = 0)
。
然而,变体数组似乎不支持这一点。
我在变体数组中传递数据(因为 OLE/COM),当用户定义 0 个元素时,我收到错误...
我可以使用 varEmpty 而不是 0 长度数组,但这些数据数组可以灵活更改(添加项目) 、删除项目等)。
如何在变体中传递空数组,还是需要使用其他方式?
The normal dynamic array supports empty (= nil, Length() = 0)
.
The variant array however does not seem to support this.
I pass my data in variant array (because of OLE/COM), and I get an error when the user defines 0 elements...
I can use varEmpty instead of a 0 length array, but these data arrays are flexible changed (add item, remove item, etc.).
How I can I pass empty arrays in a Variant, or do I need to use other way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
varEmpty
是处理此问题的正确方法。当然,COM 接口另一端的代码可能不喜欢空数组,但这一切都取决于您与该接口的特定约定。varEmpty
is the correct way to handle this. Of course, the code on the other side of the COM interface may not like empty arrays, but that all depends on the particular contract you have with that interface.下面是一些代码,无论数组是否为空,都会更新变体数组。
Here is some code that will update a Variant Array whether the Array is empty or not.