VC 與 MFC 有何關係? 我應該先學哪個?

發布 科技 2024-06-30
13個回答
  1. 匿名使用者2024-01-30

    簡單來說,MFC就是一套用VC++提前開發的框架,它有乙個非常完整的系統,可以在一定程度上提高開發效率。

    但是打包很好是優點和缺點,優點是開發效率高,缺點是底層實現不可見,這對初學者來說不一定是好事。

    對於初學者來說,最好對 C++ 語言本身有一點熟悉,然後在學習 MFC 之前熟悉 Windows 訊息迴圈等基礎知識。

    如果一開始就從MFC開始,以後很多問題都會走彎路,只能知道它是什麼,卻不知道為什麼會這樣。

  2. 匿名使用者2024-01-29

    VC++ 包括 STL、MFC、ATL 等開發庫。 STL 是標準的 C++ 模板庫,MFC 用於開發 Windows 應用程式,ATL 用於開發控制項。 還可以開發 VC++ 的 VS2008 版本。

    .NET 程式。

  3. 匿名使用者2024-01-28

    VC++ 只是乙個編譯器,可用於開發相關的 C++ 和 C。

    MFC是Microsoft的基礎類庫,是一系列的應用模板,可用於開發視窗應用,自動生成相關框架。

  4. 匿名使用者2024-01-27

    VC++ 是 1998 年推出的編譯器(確切地說是整合開發環境)。

    MFC 是乙個應用程式框架,它甚至在 VC++ 之前就出現了,之前所有的 VC++ 都說 VC++ 包含 MFC 時都是不正確的。 不僅 VC++,而且 VS 中也提供 MFC。 類,確切地說

    該嚮導特定於 VC 或 VS 類

    Wizard 是乙個外掛程式,它作為 IDE (如 VC)的一項功能提供完整的功能,使使用者更容易使用 MFC 進行程式設計。

    但是,由於 MFC 是開源的,理論上你可以參考它的 **(如果你真的有閒話)進行一些修改並移植到其他 IDE 上,如果你更感興趣,也可以為你移植的 IDE 開發乙個類似的類

    嚮導外掛程式,則該 IDE 也可以使用 MFC。

    至於說MFC只是介面,有點狹隘,首先是Windows

    API提供了介面的繪圖功能,可以建立視窗程式並在其上繪圖,無需MFC。 其次,MFC 是乙個封裝常用 Windows 的應用程式框架

    API 在一定級別將其呈現給使用者。 在編譯器不支援 RTTI 的情況下,MFC 的開發人員使用他們的方法在此框架中提供 RTTI,通過 Message 使用 Windows 訊息響應機制

    map(訊息對映), 訊息

    路由對使用者來說更自然,提供了方便的鍊表類,其中對容器的 C++ 支援不太完美。 總而言之,MFC 不僅僅是乙個介面。

    最後,MFC確實凝聚了一堆Microsoft牛的技術結晶,但畢竟是20年前的結晶,實際上現在幾乎被淘汰了(VC++也是)。

  5. 匿名使用者2024-01-26

    VC++ 包括 MFC。

    VC++ 是乙個可以做很多事情的編譯器,而 MFC 只是乙個使用 C++ 作為介面的工具。

    讓我們看看其他人怎麼說。

  6. 匿名使用者2024-01-25

    VC++ 是 1998 年推出的編譯器(確切地說是整合開發環境)。

    MFC 是乙個應用程式框架,它甚至在 VC++ 之前就出現了,之前所有的 VC++ 都說 VC++ 包含 MFC 時都是不正確的。 不僅 VC++,而且 VS 中也提供 MFC。 準確地說,Class Wizard 是 VC 或 VS 獨有的,Class Wizard 外掛程式作為 VC 和其他 IDE 的乙個功能,提供了最佳的完成功能,使使用者使用 MFC 進行程式設計更加方便。

    但是,由於 MFC 是開源的,理論上你可以參考它的**(如果你真的有閒暇的話)進行一些修改並移植到其他 IDE 上,如果你更感興趣,也可以為你移植的 IDE 開發乙個類似於 Class Wizard 的外掛程式,那麼那個 IDE 也可以使用 MFC。

    至於MFC只是做介面,這個有點狹隘,首先Windows API提供了介面繪製功能,你不是用MFC來建立視窗程式,然後在上面畫畫的。 其次,MFC 是乙個應用程式框架,它封裝了常用的 Windows API,並在一定級別將它們呈現給使用者。 在編譯器不支援RTTI的情況下,MFC的開發者在這個框架中使用了他們的方法提供了RTTI,通過訊息對映、訊息路由更自然地將Windows的訊息響應機制呈現給使用者,並在C++對容器的支援不是那麼完善的時候,提供乙個方便的鍊表類。

    總而言之,MFC 不僅僅是乙個介面。

    最後,MFC確實凝聚了一堆Microsoft牛的技術結晶,但畢竟是20年前的結晶,實際上現在幾乎被淘汰了(VC++也是)。

  7. 匿名使用者2024-01-24

    VC++ 包括 MFC。

    VC++ 是乙個可以做很多事情的編譯器,而 MFC 只是乙個使用 C++ 作為介面的工具。

  8. 匿名使用者2024-01-23

    我也想過這個問題......

    C++ 是由 C++ 標準委員會開發的一種語言或語言規範。

    C++語言規範出現後,需要有乙個具體的實現,就是提供乙個執行時平台和編譯器,讓開發者可以使用該語言。

    VC++ 是 C++ 的具體實現,由 Microsoft 在 Windows 平台上實現,編譯器為 VC6,最新版本為 VS2013。

    GUN 在 Linux 系統下的另乙個實現是 GCC。

    每個編譯器實現並不嚴格遵守 C++ 規範,並且存在一些差異,例如 vs 和 gcc 都有自己的特殊語法。 此外,不同的編譯器對應於不同版本的C++語言規範。 例如,VC6 不太支援 C99,因為 VC6 比該標準更舊。

    其實具體區別一般不會太明顯。

    一般來說,C++通常預設稱為VC++。

    VC++和MFC,MFC是Microsoft基礎類,Microsoft基礎庫的全過程。 這個東西是開發Windows圖形程式的框架,是原生Win32API的包裝器,可以理解為Microsoft在Windows平台和C++語言上構建的程式設計框架,簡化Windows圖形程式的開發,因為Win32API實在是太痛苦了,微軟再也受不了了。

  9. 匿名使用者2024-01-22

    C++是一種語言,VC++在某種意義上是Microsoft提供的平台或環境,可以在Windows平台下使用C++,例如MFC是一組由Microsoft封裝的庫。

  10. 匿名使用者2024-01-21

    無論如何,在我學習的早期,MFC確實讓我沮喪了一段時間。

    但是,您需要了解 MFC 是基於 C++ 的庫。 當您使用 createwindow wndproc winmain 等函式時,您是否覺得這些步驟太繁瑣了? 你必須用幾個簡單的表格寫很多**,這樣才能提高開發效率。

    Microsoft 已將 API 封裝到庫中,例如用於構建視窗的 cframe,在本類中,它全部由您熟悉的 Win32 API 組成。 簡單來說,MFC的目的是縮短開發效率,對API進行分類,用預先編寫的庫代替重複的步驟。

    但是,也有缺點,如果你習慣了SDK開發,你不會知道這個MFC可以用幾行**用幾行SDK效率來完成。 因此,這正是我們需要做的,以探索 MFC 的實現以及如何封裝它。 這就是“學習MFC”。

    要知道,如果不了解MFC的打包結構,就學不好MFC。

    雖然我不太喜歡MFC,但我總覺得它是雞肉)。

  11. 匿名使用者2024-01-20

    Microsoft 基礎類 (MFC) 是乙個 Microsoft 類庫,它以 C++ 類的形式封裝 Windows API,並包含乙個應用程式框架,以減少應用程式開發人員的工作量。 它包含大量的 Windows 控制代碼封裝類和許多 Windows 內建控制項和元件封裝類。

    MFC 中最重要的封裝是 Win32 API 的封裝,因此了解 Windows 物件和 MFC 物件(C++ 物件、C++ 類的例項)之間的關係是理解 MFC 的關鍵之一。 所謂 Windows 物件(Windows 物件)是由 Win32 下的控制代碼表示的 Windows 作業系統物件; 所謂MFC物件是乙個C++物件,乙個C++類的例項,這裡(在本本書的範圍內)MFC物件有特定的含義,指的是封裝Windows物件的C++物件,而不是任何C++物件。

  12. 匿名使用者2024-01-19

    Microsoft 基礎類

    為了減少編寫器的數量,Microsoft 將一些常用的類封裝在乙個庫中,供大家使用和呼叫。 即 MFC。

  13. 匿名使用者2024-01-18

    呵呵,我告訴你,C++是學習MFC的基礎,因為MFC中的程式是用C++編寫的。

    如果你學好C++,你只能說你已經學會了基礎程式設計,而且你必須學習很多關於各個方面的介面才能真正應用它們,而這些介面會使用n個不同的函式,這些函式與C++無關,因為你只需要根據提供的函式名和正確的引數呼叫這些函式即可。

    所以你認為MFC和C++是兩個世界是很正常的,因為有很多與圖形程式設計相關的函式,遠遠超過C++語言的關鍵字,但是你必須記住這些函式的名稱和引數,因為有了這些名稱和正確的引數,你就可以建立對話方塊, windows之類的(當然,如果你足夠好,也可以使用C的paint函式,自己畫乙個按鈕,然後給這個按鈕起個名字(也就是函式名),然後在使用這個按鈕的時候呼叫這個函式),如果不夠好,那就記住函式名,記住引數, 但也要記住規則,什麼事件,代表團等等。

    如果你打算將C++用於網路程式設計之類的事情,那麼你將不得不學習一堆介面,比如scokt(我不太記得網路介面,呵呵),等等。

    如果你想用C++來做資料庫之類的東西,那麼你必須學習,什麼是ODBC,這是C++和資料庫之間的介面,你必須學習,這也是很多新的東西。

    如果你想用C++進行遊戲程式設計,那麼你必須學習OpenGL,也就是遊戲的介面,你必須理解它。

    當然,程式再好,也需要有乙個友好的介面(因為現在人們不可能在DOS中操作),所以在你給程式程式設計之後,再給他乙個完美的視窗、對話方塊、按鈕、友好的操作(比如滑鼠點選,按回車鍵就可以了,這些都是圖形化程式設計中的事件), 那麼你的程式就會被更多的人使用,而不好操作的軟體也被沒人使用,圖形化程式設計的目的就是讓你對視窗、按鈕、選單進行程式設計,並實現這些東西產生的功能,沒有別的。

    以上這些你肯定都聽說過,你不懂墨生,呵呵,只學一門語言是沒用的,你要選擇乙個方向去學習。

相關回答
7個回答2024-06-30

儲蓄增加,家庭消費減少,經濟增長下降。 反之則增加。 >>>More

3個回答2024-06-30

這不就等於問你維護世界的最佳方式是什麼? 飼料!! 樓上,你**轉了一圈,怎麼我找不到,這個也解釋不了,反正是超大提綱,任何教育知識都可以收錄,但也有例外,知識不知道有多少例外!

12個回答2024-06-30

把它放在水裡,看看它是否下沉。

4個回答2024-06-30

這不重要。

李煜(937-978),五代十國時期南唐君主。 >>>More

7個回答2024-06-30

每天60秒,輕鬆看懂用車,注意“備胎說車”。