问题描述
我目前正在 Visual Studio 中开发 C++ 命令行应用程序。但目前我在某些时候卡住了:
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