2011年9月21日 星期三

VC6 to VS2008

剛開始學C 語言時,其實是學Turbo C 的。

要學視窗時,一開始也是從VB接觸的,後來因為講求專業分工之下。

就很少碰到PC 端的軟體開發環境,但後來學USB 時,因為有時老是受不了

軟體工程師的一些介面整合,就只好硬著頭皮自己自學慢慢接觸 VC...

因為從軟體工程師那邊移交過來的開發環境就是VC 6...一做就是好長的一段時間:

您看VC++ 6 是 1998 年出的軟體...我用他寫了USB ROMTER II 的應用程式,

也利用他發表了許多關於USB DIY 的內容。後來也寫了第一代多核心的IDE 開發環境。

當然也知道後來有出VS 2005 ...但是因為VC6 一直用得很順手,也沒有多大問題。

您看一用就用了十幾年了...心裡想:應該是真的夠用了,老了,就不要老是要跟流行

學一些新的東西,要不然真的會學不完的。

----

結果沒想到...還是栽在USB 的應用裡,其實我也沒有真正的抓到問題點出在哪?

那是因為有位熱心的網友跟我討論一些USB HID 的東西,我當初也是用SiLabs 原廠

的範例程式下去改一些USB HID 的應用程式,發現在他Windows 7 的環境裡...

跑起來怪怪的...這位熱心的網友就很熱心幫我把這一個程式環境轉到他的VS2010 裡,

重新整理一下,然後再跑一次,竟然就沒事了...

當然以C 語言來說:他的程式可攜性是很高的。理論來說:該沒有多大問題。

這是理論。但我想如果是純軟體應用程式應該差異不大,但如果是牽涉到一些周邊條件

的話,譬如就像我常用的 USB 開發環境,那就很難說了。前兩天我不是有提到

那個Multi-thread 的東西嗎?!您想想看:VC6 出來時,那時哪有多核心的東西。

那時軟體工程師一直跟我解釋說:所謂Thread 的程式,您就把他當作有另一棵

CPU 處理器再幫您跑程式就對了。而很不幸的,SiLabs 原廠提供的第一代 USB HID

範例程式就是用Thread 在處理 Interrupt In Token 的資料處理。

之前軟體工程師就一直告誡我說:用Thread 程式來處理周邊裝置時,

您真的要小心一點....什麼是"要小心一點"?對我這個半調子的軟體玩家,怎麼小心?!

出了問題當然就掛了啊。

那我當然要乖一點。就直接聽人家的建議:您的VC 開發環境該升級了啊!

後來我就打個電話給我USB 軟體的啟蒙工程師問說關於這件事時。

他竟然也回答我說:啊~您還在用VC6 喔?!我已經換成 VS2008 很久了啊。

唉~果然注定是個歹命工程師。看來也得升級了。

至於該如何升級?!嘻~嘻~這就是這些軟體工程師大家都知道的『不能說的秘密』。

他們合理的解釋是說:可能反正現在還有工程師願意留在PC 產業裡發展寫應用程式,

而不去投靠iOS 或是 Android 陣營的...對M$ 來說:已經是阿彌陀佛了。

所以,我現在也算是大躍進:從1998 VC6 跳到 VS 2008...十年大躍進。


其實剛開始還是有點不太適應這個新環境...但我說了:只要您找一個明確的系統應用個案。

很快的您就可以好好駕輕就熟了。當然重點是:其實大部分的VC6 的程式 VS2008 都

能吃得下。重點還是我說的:這十幾年來PC 的CPU 處理器有很大的進展,或許真的

那個舊版的 VC6 已經不合時宜了。

以M$ 的官方說法,也是強烈建議大家從VC6 轉換成 VS2008 ...尤其是您碰到

Win7 (VISTA) 的作業平台。看來為了大家USB DIY 未來的發展,大家還是

跟著腳步吧!....若以USB 系統發展來說:感覺至少應該比VB 好一點吧。

還是大家有更好的建議呢?! 

5 則留言:

  1. 543ok.tw錄音卡片DIY2011年9月22日 上午8:43

    如果是要強化PC端介面 人性化
    Delphi 開發 會比VC 快又容易
    最近 硬是把SI USB 轉成功到Delphi了,, 加加減減一些介面更方便多了
    大大 既然跳跨到VC2008,建議可以直接跳到vc2010 省得下一次又要跳一步
    我也因為USB example code,從vc6,vc2008轉到vc2010[匯入舊code比較準一點],,
    最終目標還是想要轉成Delphi

    回覆刪除
    回覆
    1. 謝謝您的建議。
      應用開發軟體真的,要學是永遠學不完的。我自己的經驗是:
      若是一味地到處跟著學,反而不專精...我自己學軟體的目的,
      也只是想一個簡單的事情做完而已...用來驗證一些系統的基本問題。
      如果真的要做到可以拿到台面上的話。
      我們還是盡量交給比較專業的軟體工程師比較好。
      ----只是有很多老闆不懂這個差異,以為事情做完就好像一切都搞定了...
      結果,都是工程師們自己在給自己壓力,覺得好還要再好,
      就自己硬著頭皮趕鴨子上架...搞到最後還是累得像一條狗,
      也沒有比較大的成就感。老闆還質疑說:怎麼明明作得好好的,怎麼
      越來越沒效率似的...唉~心事誰人知啊! :(( ....

      刪除
  2. 所以說其實還沒抓到 root cause.
    其實 vc6 有一大堆問題,你在 vc6 下開發出來的東西是不標準的,所以有時會寫出有問題的 code,而剛好在 vc6 下卻沒事,然後一移植就出包了。

    回覆刪除
    回覆
    1. 嗯...或許是吧。我自己都承認寫PC 軟體程式是半桶水了。
      至於還要不要去抓那個Root cause?!...我想就像現在應該沒有人
      會在乎以前那些 Win98 或window 2000 /NT 的問題一樣。
      有了VS2008/VS2010了...就不要再想VC6 了。
      否則:M$ 幹嘛要改版呢?!或許他們自己也懶得去處理VC6 的問題吧。

      :> ....
       

      刪除
  3. 543ok.tw錄音卡片DIY2011年9月23日 下午3:21

    相當贊同

    回覆刪除