VS2019 MFC串口通信(基于SerialPort类)

本文记录了将基于VC6.0的MFC串口通信程序升级到VS2019过程中遇到的问题及解决方案。主要问题包括:1) SerialPort类的兼容性;2) OncommMscomm函数类型修改;3) 字符集设置;4) 报错4996的解决;5) COMSTAT变量初始化。通过百度搜索和尝试,所有问题都得到了解决,证明从VC6.0升级到VS2019的路径是可行的。
摘要由CSDN通过智能技术生成

VS2019 MFC串口通信(基于SerialPort类)

SerialPort类由VC6.0 升级到VS2019遇到的问题总结及解决办法,串口通信(基于SerialPort类)可参考原文链接:[http://blog.csdn.net/humanking7/article/details/48110543]

写这篇文章主要是为了记录下调试程序过程中遇到的问题,留作以后参考,或是有相同问题的同学可以借鉴下。
基于VC6.0的串口通信程序,适用版本太低,现在的windows系统基本不支持,因此为了后续开发维护,将软件平台升级为VS2019,调试过程持续了三天,终于调通了,差点就怀疑这条路走不走得通了。还好,坚持着解决一个一个的问题,总算调通了。

这里具体记录下遇到的问题:

1、直接复制VC6.0版本的SerialPort.cpp和SerialPort.h文件。(本来有适用于VS2019的,但无奈按字符串接收WM_COMM_RXSTR可响应,而按字符接收WM_COMM_RXCHAR无响应,因此放弃)。具体操作过程参见其他博客,这里不再赘述。

2、需要将OncommMscomm(WPARAM ch, LPARAM port)函数类型更改为LRESULT。

3、显示错误“char*”类型的实参与“LPCWSTR”类型的形参不兼容时,需要点击项目属性->然后在属性页中点击->高级->字符集->将其值改为使用多字节字符集。

4、编译报4996错误时,可在SerialPort.h文件第1行,即所有头文件之前添加代码#pragma warning( disable : 4996)解决。

5、Run-Time Check Failure #3 - The variable ‘comstat’ is being used without being initialized 报错,百度有三种解决方案,本人采用的是将CSerialPort.CPP中的COMSTAT comstat;改为static COMSTAT comstat;

目前遇到的基本上就是这些问题,总的思想是:从VC6.0升级到VS2019这条路是可行的,剩下的就是遇到具体问题直接百度,都可以找到解决办法。☺☺☺☺☺☺☺

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值