日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

串口项目——Cseiralport类的应用(1 )

發布時間:2023/12/18 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 串口项目——Cseiralport类的应用(1 ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

相比最早的發布版本,在實際應用中 Cserialport必須要修改一些地方 后續會陸續放出

標記一: Run-Time Check Failure #3 - The variable 'comstat' is being used without being initialized

錯誤解決方法

方案1: 改變項目配置屬性


????一種解決方案是改變基本運行時檢查(changing the runtime checks in project settings):在菜單Project->Project properties-> C/C++ -> Code generation-> Basic Runtime checks --> change to 'Default',在中文版中是:項目-〉屬性-〉配置屬性-〉C/C++代碼生成-〉基本運行時檢查-〉設置為默認,當將基本運行時檢查改為默認之后,編譯自然順利通過了,向串口調試助手發送消息正常了,再從串口調試助手向SerialPortTest發送消息時,也正常了。


方案2:改變comstat變量屬性

?


?????另一種解決方案是將CSerialPort.CPP中的COMSTAT comstat;改為static COMSTAT comstat;這樣改了之后,debug順利通過,然后調試,與串口調試助手相互發消息都OK了。為什么這樣就能解決呢?其實當你使用debug解決方案時,它的基本運行時檢查初始設置為:兩者(/RTC1,等同于 /RTCsu),這個兩者是指:堆棧幀(/RTCs),未初始化的變量(/RTCu)。由于它要檢查未初始化的變量,所以將SerialPort.cpp中的COMSTAT comstat;改為static COMSTAT comstat;就可以正常使用CSerialPort類了。
?????以上是在debug下的解決方案,當在Release編譯狀態時,你會發現并不需要將COMSTAT comstat;改為static COMSTAT comstat;就能編譯成功并且發送接收消息正常。其實,在Release下,它的基本運行時檢查初始設置已為默認。這應該也算是第一種解決方案之內。
????而當你將它設置為兩者(/RTC1,等同于 /RTCsu)時,不論是否將COMSTAT comstat;改為static COMSTAT comstat;,編譯都不能通過,報錯““cl.exe”返回的結果有誤。",這個應該是屬于Release的問題了,另當別論了。

?

方案3:

添加代碼:memset(&comstat, 0, sizeof(COMSTAT)); //VC6不用這句也可以用,2008就要加

?

本人使用2008 直接方案三

轉載于:https://www.cnblogs.com/bigworld/archive/2012/05/31/2528211.html

總結

以上是生活随笔為你收集整理的串口项目——Cseiralport类的应用(1 )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。