Comm32 (activeX コントロール) を使用して、メソッド GetInput() を使用してシリアル ポートからデータを取得しています。このメソッドは _variant_t を返すので、これを unsigned char の配列に変換する必要があります。
シリアル ポートが TextMode (これはデータ入力が文字列として解釈される) に構成されている場合、Variant を BSTR に変換してから CString に変換すると、期待どおりに動作します (コードは私が作成したものではありません)。
_variant_t x = m_comm32.GetInput();
CString cs = x.bstrVal;
ただし、シリアル ポート経由で送信されるデータは実際にはバイナリ データであるため、データをバイナリとして解釈するように comm32 を構成すると、上記のサンプル コードでは有効なデータが得られません。だから私はそれを別の形式に変換する必要があると思います(おそらく符号なしのchar配列ですか?それは私がテストしたいものです)。
私の問題は、VARIANT 構造からデータを変換する方法に関する詳細な情報が見つからないため、頭がおかしくなっていることです。バリアントを unsigned char 配列に変換するにはどうすればよいですか??