免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
帶你玩轉(zhuǎn)Visual Studio

上一篇文章帶你玩轉(zhuǎn)Visual Studio——帶你新建一個工程一文中提到新建一個工程時會有很多的工程類型(圖1),現(xiàn)在將簡單介紹各種類型工程的含義和主要用途。由于這里包含的工程類型太多,有很多本人也沒有接觸過,有些可能理解的不太對的地方還請諒解。

首先說明一下,如果你的初學(xué)者或者C++開發(fā)的時間不長,本篇文章的很多內(nèi)容理解不了是正常的(我當(dāng)初也不理解)。你可先有大概的概念,等工作(或有實際的項目開發(fā)經(jīng)驗)一兩年后再回來看看也許就明白了。

圖 1:New Project


理解幾個概念

在開講之前先大概理解幾個概念,這是理解后面各種工程含義的基礎(chǔ)。

COM

COM(Component Object Model)組件對象模型是microsoft制定的一個組件軟件標(biāo)準(zhǔn),跟unix上的CORBA一樣。凡是遵循COM標(biāo)準(zhǔn)開發(fā)出來的組件稱為COM組件。目地是實現(xiàn)二進(jìn)制方式的軟件重用 。在windows平臺上,COM的實現(xiàn)形式有DLL(進(jìn)程內(nèi)組件)和EXE(進(jìn)程外組件)2種。

OLE

OLE(Object Linking and Embedding)對象連接與嵌入是微軟的復(fù)合文檔技術(shù),可方便實現(xiàn)應(yīng)用程序之間的通信。在后來的OLE2中才導(dǎo)入了 COM,提供了對COM的支持,利用這種技術(shù)可開發(fā)可重復(fù)使用的軟件組件COM。OLE是軟件比較早提出的一種技術(shù)。

ATL

ATL(Active Template Library)活動模板庫是一套C++模板庫,常用于開發(fā)COM程序和ActiveX程序。要理解ATL技術(shù)可從以下兩方面理解:
1.ATL可以說是把COM封裝了一下,象MFC一樣做成一個庫,并有一個向?qū)?,使COM應(yīng)用開發(fā)盡可能地自動化、可視化,這就決定了ATL只面向COM開發(fā)提供支持。
2.ATL因其采用了特定的基本實現(xiàn)技術(shù),擺脫了大量冗余代碼,使用ATL開發(fā)出來的COM應(yīng)用的代碼簡練高效。
在ATL產(chǎn)生以前,開發(fā)COM組件的方法主要有兩種:一是使用COM SDK(COM軟件開發(fā)包)直接開發(fā)COM組件,另一種方式是通過MFC提供的COM支持來實現(xiàn)。而現(xiàn)在 ATL已經(jīng)成為Microsoft支持COM應(yīng)用開發(fā)的主要開發(fā)工具。

MFC

MFC(Microsoft Foundation Classes)微軟基礎(chǔ)類是微軟提供的一個用于Windows程序開發(fā)的基礎(chǔ)類庫。MFC以C++類的形式封裝了Windows的API,并且包含一個應(yīng)用程序框架,以減少應(yīng)用程序開發(fā)人員的工作量。其中包含的類包含大量Windows句柄封裝類和很多Windows的內(nèi)建控件和組件的封裝類。

ActiveX

ActiveX是微軟提出的一組使用COM技術(shù)使得軟件組件在網(wǎng)絡(luò)環(huán)境中進(jìn)行交互的技術(shù)集,它與具體的編程語言無關(guān)。作為針對Internet應(yīng)用開發(fā)的技術(shù),ActiveX被廣泛應(yīng)用于WEB服務(wù)器以及客戶端的各個方面。同時,ActiveX技術(shù)也被用于方便地創(chuàng)建普通的桌面應(yīng)用程序,此外ActiveX一般具有界面。

ActiveX既包含服務(wù)器端技術(shù),也包含客戶端技術(shù)。其主要內(nèi)容是:
1. ActiveX控制(ActiveX Control);用于向WEB頁面、Microsoft Word等支持ActiveX的容器(Container)中插入COM對象。
2. ActiveX文檔(ActiveX Document);用于在WEB Browser或者其它支持ActiveX的容器中瀏覽復(fù)合文檔(非HTML文檔),例如Microsoft Word文檔,Microsoft Excel文檔或者用戶自定義的文檔等。
3. ActiveX腳本描述(ActiveX Scripting);用于從客戶端或者服務(wù)器端操縱ActiveX控制和Java程序,傳遞數(shù)據(jù),協(xié)調(diào)它們之間的操作。
4. ActiveX服務(wù)器框架(ActiveX Server Framework);提供了一系列針對WEB服務(wù)器應(yīng)用程序設(shè)計各個方面的函數(shù)及其封裝類,諸如服務(wù)器過濾器、HTML數(shù)據(jù)流控制等。
5. 在Internet Explorer中內(nèi)置Java虛擬機(jī)(Java Virtual Machine),從而使Java Applet能夠在Internet Explorer上運(yùn)行,并可以與ActiveX控制通過腳本描述語言進(jìn)行通信。

OLE、ActiveX、COM之間的區(qū)別

從時間的角度講,OLE是最早出現(xiàn)的,然后是COM和ActiveX;從體系結(jié)構(gòu)角度講,OLE和ActiveX是建立在 COM之上的,所以COM是基礎(chǔ);單從名稱角度講,OLE、ActiveX是兩個商標(biāo)名稱,而COM則是一個純技術(shù)名詞,這也是大家更多的聽說ActiveX和OLE的原因。既然OLE是最早出現(xiàn)的,那么就從OLE說起,自從Windows操作系統(tǒng)流行以來,“剪貼板”(Clipboard)首先解決了不同程序間的通信問題(由剪貼板作為數(shù)據(jù)交換中心,進(jìn)行、粘貼的操作),但是剪貼板傳遞的都是“死”數(shù)據(jù),應(yīng)用程序開發(fā)者得自行編寫、解析數(shù)據(jù)格式的代碼,于是動態(tài)數(shù)據(jù)交換(Dynamic Data Exchange,DDE)的通信協(xié)定應(yīng)運(yùn)而生,它可以讓應(yīng)用程序之間自動獲取彼此的最新數(shù)據(jù),但是,解決彼此之間的“數(shù)據(jù)格式”轉(zhuǎn)換仍然是程序員沉重的負(fù)擔(dān)。對象的鏈接與嵌入(Object Linking and Embedded,OLE)的誕生把原來應(yīng)用程序的數(shù)據(jù)交換提高到“對象交換”,這樣程序間不但獲得數(shù)據(jù)也同樣獲得彼此的應(yīng)用程序?qū)ο螅⑶铱梢灾苯邮褂帽舜说臄?shù)據(jù)內(nèi)容,其實OLE是Microsoft的復(fù)合文檔技術(shù),它的最初版本只是瞄準(zhǔn)復(fù)合文檔,但在后續(xù)版本OLE2中,導(dǎo)入了COM。由此可見,COM是應(yīng)OLE的需求而誕生的,所以雖然COM是OLE的基礎(chǔ),但OLE的產(chǎn)生卻在COM之前。 COM的基本出發(fā)點(diǎn)是,讓某個軟件通過一個通用的機(jī)構(gòu)為另一個軟件提供服務(wù)。COM是應(yīng)OLE 的需求而誕生,但它的第一個使用者卻是OLE2,所以COM與復(fù)合文檔間并沒有多大的關(guān)系,實際上,后來COM就作為與復(fù)合文檔完全無關(guān)的技術(shù),開始被廣泛應(yīng)用。這樣一來, Microsoft就開始“染指”通用平臺技術(shù)。但是COM并不是產(chǎn)品,它需要一個商標(biāo)名稱。而那時Microsoft的市場專家們已經(jīng)選用了OLE作為商標(biāo)名稱,所以使用COM技術(shù)的都開始貼上了 OLE的標(biāo)簽,雖然這些技術(shù)中的絕大多數(shù)與復(fù)合文檔沒有關(guān)系。
====本段內(nèi)容轉(zhuǎn)載自《OLE、ActiveX、COM、ATL聯(lián)系與區(qū)別》====



各種工程結(jié)構(gòu)

ATL

ATL Project

創(chuàng)建一個基于ATL的工程,用ATL的方式進(jìn)行COM組件的開發(fā),ATL提供了大量可重用的模板。ATL可用于COM組件的開發(fā),也可用于ActiveX的開發(fā)。


CLR

Class Library

CLR Console Application

CLR Empty Project

Windows Forms Application

Windows Forms Control Library

CLR(Common Language Runtime)是公共語言運(yùn)行庫,和Java虛擬機(jī)一樣也是一個運(yùn)行時環(huán)境。CLR的核心功能包括:內(nèi)存管理、程序集加載、安全性、異常處理和線程同步,可由面向CLR的所有語言使用。并保證應(yīng)用和底層操作系統(tǒng)之間必要的分離。CLR/C++是托管的C++程序,數(shù)據(jù)和代碼是由CLR管理的,調(diào)用方不用管內(nèi)存的分配和釋放,CLR好像常用于.net。

這一塊我還真不了解,就不說了,怕誤人子弟?。?!


General

Empty Project

就是創(chuàng)建一個空的工程,不給你添加任何.cpp或.h文件,不進(jìn)行任何特殊的設(shè)置。

Custom Wizard

就是用戶自定義向?qū)?,什么意思呢?比如你每次建一個新的工程時都期望這個工程中有main.cpp、projectDescription.txt這兩個文件,并且main.cpp中有一個默認(rèn)的main函數(shù)。那么你可以建一個Custom Wizard工程,并配制好main.cpp、projectDescription.txt文件及所在目錄結(jié)構(gòu);然后你每次創(chuàng)建一個新的工程時選擇都基于這個已有的Custom Wizard工程,新建的工程就有自動添加main.cpp、projectDescription.txt文件了。說白了Custom Wizard就是一個模型,定義工程的默認(rèn)文件和默認(rèn)的配制。

Makefile Project

makefile就是對.cpp和.h等文件的組織、構(gòu)建、編譯規(guī)則。這個在跨平臺開發(fā)中會用到,如你開發(fā)的程序既要在Windows下編譯也要在Linux、Mac下編譯,一般就會使用makefile的編譯規(guī)則。說明:Windows下有一個微軟自己的NMake構(gòu)建器,因為在VS下makefile文件中的內(nèi)容要符合NMake的規(guī)則才能夠編譯成功。


MFC

MFC ActiveX Control

就是以支持MFC的方式創(chuàng)建ActiveX程序,可快速地開發(fā)帶有界面的ActiveX程序。
拓展閱讀《使用VS2010創(chuàng)建MFC ActiveX工程項目

MFC Application

這個就是你平常開發(fā)MFC程序時會用到的工程, MFC(Microsoft Foundation Classes)是微軟提供的一個用于Windows程序開發(fā)的基礎(chǔ)類庫,也是快速開發(fā)Windows上的桌面程序一般會選擇的方式。

MFC DLL

它也是創(chuàng)建一個MFC的程序,與MFC Application的不同之處是:MFC Application工程生成的是一個.exe的可執(zhí)行文件,而MFC DLL工程生成的是一個.dll的動態(tài)庫文件。


Test

Test

顧名思義,這就是一個測試工程,可用來進(jìn)行單元測試、順序測試、壓力測試等。


Win32

Win32 Console Application

這個就是你最熟悉的控制臺應(yīng)用程序了,編譯成功,運(yùn)行時會出現(xiàn)一個黑色的命令行窗口。上篇文章帶你玩轉(zhuǎn)Visual Studio——帶你新建一個工程的樣例也就是創(chuàng)建的這個類型的工程。

Win32 Project

MFC其實是對Windows API進(jìn)行的一種封閉,使其具有面向?qū)ο蟮奶匦浴6@個Win32 Project工程就是以直接調(diào)用Windows API的方式,使用Windows SDK開發(fā)帶有窗口界面的程序。


說明

其實,像一般的開發(fā)常用的工程類型也就幾種:
Win32 Console Application: 控制臺應(yīng)用程序,也是常見的那個黑色命令窗口。
Win32 Project: 直接用Windows API進(jìn)行Windows桌面應(yīng)用程序的開發(fā)。
MFC Application: MFC工程,用微軟提供的類庫進(jìn)行界面程序的快速開發(fā)。



上一篇回顧:
帶你玩轉(zhuǎn)Visual Studio——帶你新建一個工程

下一篇要講述的內(nèi)容:
帶你玩轉(zhuǎn)Visual Studio——帶你高效開發(fā)


本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Windows編程革命簡史 | 酷殼
STL,ATL,WTL之間的聯(lián)系和區(qū)別
ATL CLR MFC Win32的區(qū)別
用ATL開發(fā)和部署ActiveX網(wǎng)頁控件
ActiveX技術(shù)揭示 - www.rising.com.cn
ActiveX控件的WEB發(fā)布
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服