gpt4 book ai didi

c# - API 数组返回类型

转载 作者:行者123 更新时间:2023-11-30 22:41:37 27 4
gpt4 key购买 nike

我正在开发一个现有的 API,它是由几位已离开我公司的开发人员编写的。据我了解,API 是作为一个 dll 实现的,它通过套接字与本地主机上的服务器程序进行通信。所以它来回 Marshals 对象。我必须向这个 API 添加一些方法。有许多现有方法可以返回可用名称列表(所有字符串)。但是,它们都作为对象数组返回。代码如下:

[return: MarshalAs( UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_VARIANT )]
object[] GetAvailableNames( );

我不太确定为什么这样做:为什么不只返回一个字符串数组?有人知道吗?

最佳答案

这有点推测性,但看起来 native API 实际上返回的是一个安全的变体对象数组,而不是一个字符串数组。我相信编码安全变体数组的正确方法确实是将其作为字符串数组进行编码。尽管它只包含字符串,但将任何类型放入变体槽中都是合法的。

也就是说,如果您可以访问代码的两端(托管和 native ),可能最好将它们切换为直接与字符串数组通信。

关于c# - API 数组返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4755523/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com