免费大黄网站,久久午夜夜伦鲁鲁片免费无码影视 ,国产又色又爽又黄的,久久国产成人午夜av影院

當前位置:首頁 > 問答 > 正文內(nèi)容

八維分享托管C++中GDI+和GDI混合編程技術(shù)

賈笑寒5年前 (2020-12-25)問答152
印刷廠直印●彩頁1000張只需要69元●名片5元每盒-更多報價?聯(lián)系電話:138-1621-1622(微信同號)

  八維分享托管C++中GDI+和GDI混合編程技術(shù)   早期的Windows程序中,可以使用GDI(Graphics Device Interface,圖形設(shè)備接口)在一個窗體中繪制圖形、文本和圖像,但它的功能比較有限,尤其是圖像處理方面。GDI+是GDI的一個新版本,它不僅在GDI基礎(chǔ)上添加許多新特性,而且對原有的GDI功能進行優(yōu)化,并在為開發(fā)人員提供的二維矢量圖形、文本、圖像處理、區(qū)域、路徑以及圖形數(shù)據(jù)矩陣等方面構(gòu)造了一系列相關(guān)的類。其中,圖形類Graphics是GDI+接口中的一個核心類,許多繪圖操作都可用它來完成。

  與GDI相比,GDI+增加了漸變畫刷、樣條曲線、持久的路徑對象、矩陣和矩陣變換、Alpha混色、色彩修正、消除走樣以及元數(shù)據(jù)等新的特性。但是,GDI+卻并不支持GDI中的AND(與)、OR(或)以及XOR(異或)等光柵操作(ROP)以及硬件加速。其中,XOR光柵操作是實現(xiàn)圖元動態(tài)定位的橡皮條技術(shù)的最重要方法,其次GDI+中的圖像處理速度上并不比GDI更具優(yōu)勢。為此,本文通過若干托管C++實例來探討在托管環(huán)境下GDI+和GDI的混合編程的方法和技巧。

  在Visual C++ .NET 2003中,程序員可以使用MFC和托管C++( Managed Extensions for C++,C++托管擴展)等編程方式進行圖形圖像程序開發(fā)。MFC是一套Microsoft基礎(chǔ)類庫,它是使用面向?qū)ο蠹夹g(shù)對Windows API進行封裝。因此在MFC中進行圖形圖像程序開發(fā)時既可以使用MFC類CDC來編程,也可直接使用GDI API中的函數(shù)和結(jié)構(gòu)。

  托管C++是在C++基礎(chǔ)上建立的,用來為Visual C++程序員開發(fā).NET框架應(yīng)用程序而設(shè)計。它除了保留標準C++的全部功能,還可通過.NET Framework(.NET框架)來創(chuàng)建對象,實現(xiàn)自動化內(nèi)存管理以及與其他.NET語言的互操作性。由于托管環(huán)境與非托管環(huán)境的區(qū)別,因此GDI API并不能像MFC那樣直接在托管C++中進行調(diào)用。但在GDI+中的Graphics類[4]提供了與GDI交互的一些方法,如GetHdc和ReleaseHdc,分別用于獲取或釋放與Graphics對象相關(guān)聯(lián)的設(shè)備環(huán)境句柄。

  由于GDI API不使用托管代碼,它使用的數(shù)據(jù)類型與托管C++中所用的數(shù)據(jù)類型不同,且它也不是COM對象,所以在托管C++使用GDI是通過平臺調(diào)用(PInvoke)來實現(xiàn)的。

  平臺調(diào)用[5]是一種服務(wù),它使托管代碼能夠調(diào)用DLL中實現(xiàn)的非托管函數(shù),使用時需要指定Runtime::InteropServices命名空間。在托管C++中調(diào)用GDI API(GDI32.DLL)一般是按標識 DLL中的函數(shù)、在托管代碼中創(chuàng)建原型和函數(shù)調(diào)用三個部分。其中,函數(shù)調(diào)用與一般托管C++中調(diào)用相同,這里不作討論。

收藏0

發(fā)表評論

訪客

看不清,換一張

◎歡迎參與討論,請在這里發(fā)表您的看法和觀點。