我正在使用Comm32(一个activeX控件)使用GetInput()方法通过串口获取数据。 此方法返回_variant_t,因此我需要将其转换为unsigned char的数组。
当串行端口配置为TextMode(这是数据输入被解释为String)时,将Variant转换为BSTR然后转换为CString按预期工作(代码不由我编写):
_variant_t x = m_comm32.GetInput();
CString cs = x.bstrVal;
但是,由于通过串口发送的数据实际上是二进制数据,因此在配置comm32将数据解释为二进制时,上面的示例代码并不能提供有效数据。 所以我认为我需要将它转换为另一种格式(可能是unsigned char数组?这是我想要测试的那些)。
我的问题是我变得疯狂,因为我找不到有关如何从VARIANT结构转换数据的任何详细信息。如何将变量转换为unsigned char数组?