vc++真的過時了嗎?


vc++真的過時了嗎?

近些年,關於VC++已過時了的言論,不時地就會冒出來。剛從學校畢業的學生,會大談python,JAVA之好處,似乎整個VC++語言,以及更低端的C語言都在淘汰之列。

VC++真的過時了嗎?

答案是否定的。

(作者注:本文用手機現寫,所以沒有更多的插圖,還望海涵)

任何一門語言,都有它的生存環境,不能一概而論;一個語言,如果掌握不了,說明對語言的理解還不到位。以下把我做過的一些VC++的開發工作,分享給大家。

本文主要講以下四點內音:

VC++的多進程,多通訊選擇方式是嵌入式開發中,上位機的最好選擇。

VC++是人機界面交互UI的理想選擇

VC++與SQL,EXCEL等數據庫表格處理工具鏈接十分快捷。

VC++的多進程,多線程,屬性表,多媒體定時,是頁面處理的亮點。


1,VC++的多進程,多通訊方式,是嵌入式開發中,上位機的最好選擇

  • 嵌入式開發多通訊方式

嵌入式開發,常用在工業自動化控制中。下位機選用高速單片機,或者ARM。一些簡單的設備,只用單片機即可,用低端顯示器做輸出設備。一般單價十萬元以內的設備常用,造價低,自然要選低價位的輸出設備。

我們的設備出口多,單價60萬~300萬之間。在控制上,上位機CNC一般選高端工控機,下位機採用NC加多MPU的方式,因為系統比較複雜,上位機用VC++開發,用高速的1000M TCP/IP網口與下位機NC進行數據交換。

VC++還支持串口,SPI,FIFO,MSBUS,USB等諸多通訊方式。視系統大小選擇通訊方式。VC++中對通訊類做的很到位。

另外,VC++也支持I/O操作,高端物理內存地址的FIFO操作,只是要進行地址換算。

  • 進程Process的應用

因為系統比較複雜,開發人員多,所以,在架構設計時,我專門研究了VC++的進程Process及其之間的數據交換。專門做了五個進程Process:

第一個進程,負責與下位機的通訊處理。

第二個進程,負責檢查並接收從用戶LAN

網絡中傳過來的零件加工程序。

第三個進程,負責人機界面UI部分

第四個進程,負責語法,語議分析及解釋。

第五個進程,為CAD/CAM,主管用戶CAD圖形及輔助的零件程序的產生。

這五個進程相互之間進行命令及數據傳遞,但各自又是獨立的。

進程,是VC++一大亮點。不好掌握,但是,用好了,非常好。交換數據快而準確,把高速IPC的性能發揮到極致。

進程的最大好處,是項目可以分給多個人來做。只有把數據交換協議在上層做好了就行。最後的聯調也很方便。

2,VC++是人機界面交互UI的理想選擇

  • VC++提供了很多的標準控件

在VC++的RC庫中,靜態文本CStatic,編輯CEdit,CRichEdit,按鈕CButton,工具條,滾動條,滑動條等等,涵蓋了我們所有要用的資源RC。

  • VC++提供了海量的外部控件

如果認為標準Control太古板,那麼可以自畫,現在有XP的各種風格,WIN10的簡約風格,還有CButtonST風格,只是換一下風格,畫風隨之改變。緊跟潮流,永不過時。

3,VC++與SQL,EXCEL等數據庫表格處理工具鏈接十分快捷;做遠程數據交換的首選。

  • SQL及遠程數據交換

2017年,與一航天單位合做一項目,給其做遠程數據交換。

用vc++的ODA進行SQL數據庫的讀寫操作。用mediamultitimer做定時,每100ms對機器的主要狀態數據,進行採集,寫入SQL的數據庫表中。設為遠程讀取方式。海量數據在控制中心隨時可以讀取,分析,並對機器進行控制。

  • 與EXCEL的數據表讀寫

VC++讀寫EXCEL表格數據,也非常好用。在應用程序中,直接把數據寫入Excel表中。要檢查數據時,excel直接打開即可。

4,VC++的多進程,多線程,屬性表,多媒體定時,是頁面處理的亮點。

  • 多進程Process

在第1節介紹了VC的多進程。進程間數據交換要稍慢,但是能滿足要求。

人機界面UI進程Process中,還要設多個線程Thread。作用是各小功能模塊,各成小體系,之間用消息Message及臨界區Critical進行數據交換。

  • 多線程Thread

為什麼要用多線程?因為複雜的CNC系統,需要二十~三十個頁面,各頁面要進行數據交換,比如,參數頁修改的參數,馬上在加工頁要用到,那麼線程就是一個很好的數據交換平臺。

  • 多頁面屬性表PropertySheet

多個頁面要組織好,必須用屬性表PropertySheet。PropertySheet是頁面最好的組織者。把幾個功能相近的頁面組織到一個表中,便於用戶使用。

  • 精準的多媒體定時器

多媒體定時器,最小Interval是10ms,這在上位機已經足夠了。它的優點是,不受系統內其它線程及其中的Timer的影響,響應級別高,準確。是在一個進程中,處理大定時的首選。

結束語:VC++是做大型軟件的上位機首選。本文介紹了其先進的進程,線程,屬性頁,定時器,與下位機的多種類通訊方式,與SQL,EXCEL的數據表訪問等特點。還有很多,如數學運算,CString處理,文件操作,CDC圖形處理等,都是很搶眼的亮點。

偉大的比爾.蓋茨先生已經為我們考慮的夠充分了。還猶豫什麼?

當然,它也有缺點,就是學起來費勁。一般好的東西,不好學。學好了,受用終生。



分享到:


相關文章: