通过C ++ / CLI中的串行端口读取字节数据

| 我试图与另一个程序建立接口,所以我必须使用C ++。 自从我用C ++编程已经有好几年了,这个问题已经存在了大约一个星期,所以我开始慢慢地了解一切。 我想读取来自串行端口设备的字节数据。 我已经验证可以使用readline命令通过串行端口获取文本: 例如:
String^ message = _serialPort->Readline();
是如何从MSDN的示例中成功读取数据的方法。 但是,我尝试了几次修改,但运气不好,无法以字节为单位读取数据。 (我已经将字节数据转换为字符串,因此实际上可以看到字节,例如数字15等于字节中的0f。) 修改代码为
wchar_t message = _serialPort->Readline();
给我
error c2440: \'initializing\' : cannot convert from System::String ^\' to \'wchar_t\'.
我不熟悉3英镑。仅用于字符串吗?我已验证它可以与字符串一起使用,并且如果我使用发送字符串的串行设备,则第一组代码可以使用。 有人可以解释我可以使用哪种方法读取字节数据吗?谢谢。     
已邀请:
如果您实际上要使用C ++而不是C ++ / CLI,则建议使用boost.asio。它已经建立良好,相对容易理解,并且具有一组专门用于串行端口的功能。     
更新资料 纯C ++ Win32 API版本: 请参阅以下良好参考 CodeProject文章 MSDN 您在C ++ / CLI代码中执行此操作有任何特定原因吗? 我认为您甚至可能都不知道(否则,请标记您的问题)。 String ^,Readline等都是CLR函数(即.NET,请考虑:\“您可以在C#中更轻松地执行此操作)。因此, 如果需要使用C ++,则为什么不查看本机Win32 API 否则,为什么要打扰C ++ 如果您真的想要C ++ / CLI,我建议在处理串行IO时不要混合使用本机/托管代码。您可以获取UnmanagedMemoryStream来封送进/出受管理土地的数据。 $ 0.02     

要回复问题请先登录注册