在C++Builder XE10 中 使用MSComm读取串口数据,报错

hack_tian 2017-08-01 03:36:20
const int length = 11;
OleVariant ovRecvBuf;
if(MSComm1->CommEvent == 2)
{
if(MSComm1->InBufferCount > 0) //MSComm1->InBufferCount=11,说明有数据
{
ovRecvBuf=MSComm1->Input; //win10执行exe文件,到此处报错,在win7执行可以正常工作。
for(int k=0;k<length;k++)
{
recvBuff[k]=ovRecvBuf.GetElement(k);
}
}
}


程序是在win7 64 位开发,能够正常获取数据,在win10上使用软件就报错;请大神指点一下
...全文
625 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hack_tian 2017-08-03
  • 打赏
  • 举报
回复
准备安装个虚拟机调试,有没有大神遇到这种情况
hack_tian 2017-08-02
  • 打赏
  • 举报
回复
执行到ovRecvBuf=MSComm1->Input就出错,跳出程序。是不是因为类型不同?
hack_tian 2017-08-02
  • 打赏
  • 举报
回复
弹出的错误类是EOleException 和 EVariantInvalidArgError,用管理员身份登陆EVariantInvalidArgError错误没有出现,但是依然没有获取数据。
ooolinux 2017-08-01
  • 打赏
  • 举报
回复
右键——以管理员身份运行试试。

1,316

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧