我用的是VS,所以對VS做了點功課,找了些資料,全當入門!
理解工程含義的基礎
COM |
COM(Component Object Model)組件對象模型是microsoft制定的一個組件軟件標準,跟unix上的CORBA一樣。凡是遵循COM標準開發出來的組件稱爲COM組件。目地是實現二進制方式的軟件重用 。在windows平臺上,COM的實現形式有DLL(進程內組件)和EXE(進程外組件)2種。 |
OLE |
OLE(Object Linking and Embedding)對象連接與嵌入是微軟的複合文檔技術,可方便實現應用程序之間的通信。在後來的OLE2中才導入了 COM,提供了對COM的支持,利用這種技術可開發可重複使用的軟件組件COM。OLE是軟件比較早提出的一種技術。 |
ATL |
ATL(Active Template Library)活動模板庫是一套C++模板庫,常用於開發COM程序和ActiveX程序。要理解ATL技術可從以下兩方面理解: |
MFC |
MFC(Microsoft Foundation Classes)微軟基礎類是微軟提供的一個用於Windows程序開發的基礎類庫。MFC以C++類的形式封裝了Windows的API,並且包含一個應用程序框架,以減少應用程序開發人員的工作量。其中包含的類包含大量Windows句柄封裝類和很多Windows的內建控件和組件的封裝類。 |
ActiveX |
ActiveX是微軟提出的一組使用COM技術使得軟件組件在網絡環境中進行交互的技術集,它與具體的編程語言無關。作爲針對Internet應用開發的技術,ActiveX被廣泛應用於WEB服務器以及客戶端的各個方面。同時,ActiveX技術也被用於方便地創建普通的桌面應用程序,此外ActiveX一般具有界面。
ActiveX既包含服務器端技術,也包含客戶端技術。其主要內容是: 1. ActiveX控制(ActiveX Control);用於向WEB頁面、Microsoft Word等支持ActiveX的容器(Container)中插入COM對象。 2. ActiveX文檔(ActiveX Document);用於在WEB Browser或者其它支持ActiveX的容器中瀏覽複合文檔(非HTML文檔),例如Microsoft Word文檔,Microsoft Excel文檔或者用戶自定義的文檔等。 3. ActiveX腳本描述(ActiveX Scripting);用於從客戶端或者服務器端操縱ActiveX控制和Java程序,傳遞數據,協調它們之間的操作。 4. ActiveX服務器框架(ActiveX Server Framework);提供了一系列針對WEB服務器應用程序設計各個方面的函數及其封裝類,諸如服務器過濾器、HTML數據流控制等。 5. 在Internet Explorer中內置Java虛擬機(Java Virtual Machine),從而使Java Applet能夠在Internet Explorer上運行,並可以與ActiveX控制通過腳本描述語言進行通信。 |
各種工程結構
ALT ALT Project |
創建一個基於ATL的工程,用ATL的方式進行COM組件的開發,ATL提供了大量可重用的模板。ATL可用於COM組件的開發,也可用於ActiveX的開發。 |
CLR Class Library CLR Console Application |
CLR(Common Language Runtime)是公共語言運行庫,和Java虛擬機一樣也是一個運行時環境。CLR的核心功能包括:內存管理、程序集加載、安全性、異常處理和線程同步,可由面向CLR的所有語言使用。並保證應用和底層操作系統之間必要的分離。CLR/C++是託管的C++程序,數據和代碼是由CLR管理的,調用方不用管內存的分配和釋放,CLR好像常用於.net。 |
General 1Empty Project 2Custom Wizard 3Makefile Project |
2就是用戶自定義嚮導,什麼意思呢?比如你每次建一個新的工程時都期望這個工程中有main.cpp、projectDescription.txt這兩個文件,並且main.cpp中有一個默認的main函數。那麼你可以建一個Custom Wizard工程,並配製好main.cpp、projectDescription.txt文件及所在目錄結構;然後你每次創建一個新的工程時選擇都基於這個已有的Custom Wizard工程,新建的工程就有自動添加main.cpp、projectDescription.txt文件了。說白了Custom Wizard就是一個模型,定義工程的默認文件和默認的配製。 3makefile就是對.cpp和.h等文件的組織、構建、編譯規則。這個在跨平臺開發中會用到,如你開發的程序既要在Windows下編譯也要在Linux、Mac下編譯,一般就會使用makefile的編譯規則。說明:Windows下有一個微軟自己的NMake構建器,因爲在VS下makefile文件中的內容要符合NMake的規則才能夠編譯成功。 |
MFC 1MFC ActiveX Control 2MFC Application 3MFC DLL |
1就是以支持MFC的方式創建ActiveX程序,可快速地開發帶有界面的ActiveX程序。 拓展閱讀《使用VS2010創建MFC ActiveX工程項目》. 2這個就是你平常開發MFC程序時會用到的工程, MFC(Microsoft Foundation Classes)是微軟提供的一個用於Windows程序開發的基礎類庫,也是快速開發Windows上的桌面程序一般會選擇的方式。 3它也是創建一個MFC的程序,與MFC Application的不同之處是:MFC Application工程生成的是一個.exe的可執行文件,而MFC DLL工程生成的是一個.dll的動態庫文件。 |
Win32 1Win32 Console Application 2Win32 Project |
1這個就是你最熟悉的控制檯應用程序了,編譯成功,運行時會出現一個黑色的命令行窗口。 2MFC其實是對Windows API進行的一種封閉,使其具有面向對象的特性。而這個Win32 Project工程就是以直接調用Windows API的方式,使用Windows SDK開發帶有窗口界面的程序。 |
其實,像一般的開發常用的工程類型也就幾種:
Win32Console Application: 控制檯應用程序,也是常見的那個黑色命令窗口。
Win32Project: 直接用WindowsAPI進行Windows桌面應用程序的開發。
MFCApplication: MFC工程,用微軟提供的類庫進行界面程序的快速開發。
CVS:是一個用於代碼版本控制的自由軟件,它是一個比較早出現的工具,由於它有很多自身的缺陷,現在幾乎被SVN所取代了。
**SVN:**SVN是Subversion的簡稱,它是集中式的版本控制系統。SVN繼承了CVS的基本思想,包含了CVS的幾乎所有功能。你可以認爲SVN是CVS的升級版(但實際上它們完全是兩個軟件)。
**Git:**git是分佈式的版本控制系統。相信玩過開源代碼的都知道github吧,它就是一個基於git的代碼託管平臺。
Git與SVN的區別,大家可以參考這一篇。
http://blog.csdn.net/luoweifu/article/details/13094069
如果你遇到單個的項目,一般思路是;
按照接口從上往下梳理或按照數據庫從下往上梳理。多思考兩點------1、類、方法、函數之間的調用關係2、參數傳遞與變化
最後組成一個邏輯鏈:接口---類/方法/函數---數據庫。
好啦!今天就這樣吧!