看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《don750421 (1+1≠2)》之銘言: 整篇文章看下來,有些事要先釐清,不然會愈描愈黑, 盡可能把認為您聽不懂的專有名詞拿掉。 C / C++ ,這二個是程式語言,程式語言只有「規範」, 而去實作程式語言的規範,有很多公司(軟體),像是 Visual C++ 這套軟體, 本身實作了 C 與 C++ 程式語言之規範,只是他又提供了更多功能而已, 而程式語言之規範不該綁定於某個軟體之上 (所以也有 BCB, gcc 等軟體)。 C# 本身也是一種程式語言,只有規範,但特別的是這種程式語言之規範 只有微軟在實作,所以說它是軟體嗎?oh 好吧,它是。 它也綁定了在軟體之上。 前言恕刪。由於有關鍵字:「產線」, 我想要升級硬體可能不是件簡單的事。 : 於是使用某間廠商的Driver,然而,該間廠商也有C#版本的SampleCode可參考 : 所以在開發上也任何太大的問題。 通常是先去問這間廠商有沒有提供 C++ sample code, 一些做得較好的 document, 會提供多個程式語言 sample code, 諸如 MFC, Win32(C) , VB, C# 等。 : 第一間是以按Button的方式送出訊息,訊息內容包在每個按鍵的事件中。 : 第二間是開啟程式後需先import一個Library,訊息都寫在Library中 訊息都寫到 library 中?指的是有額外的函式去查看訊息嗎? 這方式在 c/c++ 還蠻常見的,諸如 GetLastError() 不也用這方式? : 如果要發送訊息,是從Library中以拖拉的方式拉到程式中的某個欄位中,就會送出訊息 : 第二間只有C++版本的文件(只有單純的兩三頁),也沒有任何的教育訓練。 我沒看過那份 document 長怎樣, 但若是小公司的話寫得很潔捷並不意外。 可能只像是 C++ reference 前半段說明: 函式名稱、函式功能、函式引數說明、傳回值說明, 但要個 sample code 並不是什麼過份的事。 : 我們經理就要我將原本利用第一間Driver所開發的架構,改用第二間的Driver改寫 : 但是,第一間所使用的方式和第二間的有所差異,不知道要怎麼改寫 : 跟我們經理講解之後,他卻認為程式的邏輯都是一樣,只是換個屬性和方法寫而已。 這個.. domain know how 是什麼我不懂, 但要改寫的話可能要先清楚 物件導向 是什麼,甚至可能連 Design Pattern 都要一點, 不過我納悶的是,經理真的是要把「一間公司開發的東西」, 轉交由「你一人重新開發嗎 (re-develope)」? : 以上說了很多廢話,重點是經理要我去買本C++的書籍 書單:#1F5OOCoO (C_and_CPP) : 要我改寫成C++的版本,這我又不知道該如何做了!! : 我之前只有稍微接觸過C,之後就直接碰C# : C++根本沒學過,更別說是MFC了 二個問題先想過 1. C/C++/Win32 API/CLI/MFC/C# , 和視窗程式有什麼關係? 2. 上面哪些不需 .Net framework 就可以執行? 第一題自己找,第二題是 C/C++/Win32/MFC 都不需。 然後有個觀念要釐清一下。 事實上寫視窗程式用 C 語言加上 Win32 API 就可以寫了, 你可以上網 google 一份免費的資源:theForger's Win32 API Tutorial - Winprog 裡面用到的都是 C 語言和 Win32 API 而已,就可寫程式。 但由於這種方式慢慢刻非常費時, 於是有些廠商將這些刻視窗(或其他資源管理等)的 API 以物件導向方式, 以 C++ 封裝成 class,方便呼叫使用,而 MFC 便是微軟封裝 API 之 class, 也有其他類似的選擇,諸如 BCB、Win32++ 等等。 : 而且,目前所開發的程式都是一些WinForm的架構 : 如果使用C++改寫應該要寫成MFC架構吧?? 我沒意會錯的話,WinForm 泛指是在 .net 上執行的, 只要避開 .net ,使用單純之 Win32 api 或一些廠商為其封裝好之 class 就行了。 所以的確到時 WinForm 會改寫成 MFC 或 BCB 或 Win32++, 想向你經理證明你實力堅強的話,你可以把所有 WinForm 全都改寫成 C 寫 Win32, 但這行為應該不會被允許。 : 想請問一下,使用C++寫,是不是就不用安裝.NetFramework? : 我記得有使用到.NetFramework類別的都要安裝啊!! : 有可能我寫MFC然後不用裝.NetFramework嗎? 如上所說, MFC 實際上是用 C++ 程式語言的規範, 去封裝了 API 成為類別,它在 199x 年就出現了, 而 .net framework 是從 200x 年才出現, 從頭到尾用不到 .net framework。 < 不過在猜想,你的情況會不會用到 COM componment 就不知道了.. > : 另外,因為我沒接觸過C++,那我該如何做起呢? : 直接買本MFC的書籍來K嗎?還是一定要買C++的書籍呢? : 目前是看中兩本書籍 : C++ :C++ Primer 4/e中文版 基峰 : MFC :精通MFC視窗程式設計:Visual Studio 2010版(附光碟) 松崗 : 想請問各位,如果真的要買書,哪本會比較適合我呢? Repeat again : 書單:#1F5OOCoO (C_and_CPP) Repeat again and again : 如果你沒 C++ 基礎,貿然直接砍 MFC 是痛苦、辛苦的事, 原因如上述,MFC 根本就是用 C++ 的概念去封裝視窗程式設計的東西而已,那你到底 該先學些什麼? < 最後小聲說,如果很急著想學 MFC 的話,學到後半段記得再學 Win32 API 會較好.. > 淺見,參考,也歡迎討論與指正。 -- 我知道 ~ 但別說出來 , 說出來讓人感到特別難過... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.195.165.40
littleshan:C#有非微軟的實作品,見 http://www.mono-project.com 02/18 03:03
WJAider:就我所知, Unity 不就有使用 c#, 只算實作 c# 的話XD 02/18 03:47
damnfool:Ivor Horton那本說MFC出現在物件導向規則之前... 02/18 03:49
damnfool:所以MFC跟物件導向規則就像蔣介石跟毛澤東一樣 02/18 03:50
damnfool:獲利跟壟斷層次還是不一樣.... 02/18 03:53
damnfool:無限制的獲利就是壟斷....... 02/18 03:54
damnfool:沒有限制的慾望就是人性黑暗面 02/18 03:56
kdjf:小聲問一下: .net不能把所有用到的東西靜態連結起來嗎? 02/18 14:03
littleshan:它需要virtual machine 02/18 14:15
tropical72:littleshan 提的 web 好酷!! 長知識了。 02/18 14:52
tropical72:@damnfool:可能我名詞上使用有誤,上述說的物件導向換成 02/18 14:53
tropical72:"類別特性"或許好點.. 02/18 14:53
Bencrie:Mono和Moonlight 表示: 02/18 20:17
Kerick:C++不熟要弄MFC吃力 有Sample可改還混的過 02/19 01:44
meltice:MFC 我只會Dialog Wizard 02/19 09:55
meltice:記得把ESC熱鍵拿掉它就會很像是個一般視窗了 02/19 09:56