将字节数组转换为 tagVARIANT 数组

问题描述

我目前正在 Visual Studio 中开发 C++ 命令行应用程序。但目前我在某些时候卡住了:

我有一个字节数组,包含 3 个元素:

byte arr [3] = {0x0A,0xFF,0xBF}

现在我想把这个数组赋给一个函数。但是在构建时出现以下错误

“不可能从 byte[3] 转换为 VARIANT。”

那么任何人都可以提供一个简单的示例,说明可以使用 Visual Studio 在 C++ 中完成此操作。

感谢您的帮助。

解决方法

有C++类型,此列表中缺少类型byte
https://en.cppreference.com/w/cpp/language/types
有一个关于如何在 COM
中使用数组的链接 https://www.codeguru.com/cpp/com-tech/activex/com/article.php/c2577/Using-COM-to-Pass-Arrays.htm
请注意,该字节不是 C++ 类型,也不是 COM 类型。 byte 的 C++ 类型是 char 或 unsigned char。大概最适合字节的COM类型是VT_UI1。还要检查类型 VT_ARRAY。您应该使用 SafeArray* 函数来处理 COM 数组。
您可以在此处找到有关使用 COM 类型的一些信息: http://www.roblocher.com/whitepapers/oletypes.html
还有这里
Return Array of object from ATL ActiveX Control