我用的是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技術可從以下兩方面了解: 1.ATL可以說是把COM封裝了一下,象MFC一樣做成一個庫,并有一個向導,使COM應用開發盡可能地自動化、可視化,這就決定了ATL隻面向COM開發提供支援。 2.ATL因其采用了特定的基本實作技術,擺脫了大量備援代碼,使用ATL開發出來的COM應用的代碼簡練高效。 在ATL産生以前,開發COM元件的方法主要有兩種:一是使用COM SDK(COM軟體開發包)直接開發COM元件,另一種方式是通過MFC提供的COM支援來實作。而現在 ATL已經成為Microsoft支援COM應用開發的主要開發工具。 |
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 Empty Project Windows Forms Application Windows Forms Control Library | 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工程,用微軟提供的類庫進行界面程式的快速開發。
對于代碼工具,使用的是VassistX。代碼托管有以下幾種選擇:
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、參數傳遞與變化
最後組成一個邏輯鍊:接口---類/方法/函數---資料庫。
好啦!今天就這樣吧!