C++的管理擴充

來源:互聯網
上載者:User

簡介

C++管理擴充是一組語言擴充,它協助Microsoft Visual C++開發人員為微軟.NET編寫應用程式。

管理擴充是有用的,如果你:

希望提高開發人員使用C++編寫.NET應用程式的生產率

要分階段地將一大段代碼從非管理C++中移植到.NET平台上

想從.NET Framework應用程式中使用已有的非管理C++組件。

想從非管理C++中使用.NET Framework組件

在同一應用程式中混合非管理C++代碼和.NET代碼

C++管理擴充為開發人員定位.NET Framework提供了無比的靈活性。傳統的非管理C++和管理C++代碼可以自由地混合在一個應用程式中。用管理擴充編寫的應用程式可以利用兩種代碼的優點。使用管理擴充,現有組件可以方便地封裝到.NET組件中,在與.NET整合的同時保留原有投資。

什麼是管理擴充?

擴充允許你在C++中編寫在.NET Framework控制下啟動並執行管理(或.NET)類。(非管理C++類運行在傳統的微軟基於Windows?的環境中。)一個管理類是一個內建的.NET類,可以完全利用.NET Framework。

管理擴充是Visual C++開發系統的新關鍵字和屬性。它們允許開發人員決定哪些類或函數編譯為管理或非管理代碼。這些部分然後就可以平滑地與其它部分或外部庫互動。

管理擴充也用於在C++原始碼中表示.NET類型和概念。這就允許開發人員容易地編寫.NET應用程式,而無需編寫額外代碼。

主要使用環境

將現有代碼平滑地移植到 .NET

如果你在C++代碼上有大量投資,管理擴充將幫你將它們平滑地轉移到.NET平台中。因為你可以在一個應用程式--甚至是同一檔案中混合管理和非管理代碼,你可以用很長時間轉移代碼,一個組件接一個組件地轉換到.NET中。或你可以繼續在非管理C++中編寫組件,以利用該語言的強大功能和靈活性,只用管理擴充編寫少量的高效能的封裝器(它使你的代碼可以從.NET組件中調用)。

從 .NET語言中訪問C++組件

管理擴充允許你從任何.NET語言中調用C++類。你需要用擴充編寫簡單的封裝器,它將你的C++類和方法暴露為管理類。封裝器是完全的管理類,可以從任何.NET語言中調用。封裝器類是作為了管理類與非管理C++類間的映射層。它簡單地將方法調用直接傳遞到非管理類中。管理擴充可用於調用任何內建的動態連結程式庫(DLL)及內建類。

從內建代碼中訪問.NET 類

使用管理擴充,你可以建立並從C++代碼中直接調用.NET類。你可以編寫將.NET組件當作任何其它管理C++類的C++代碼。你可以使用.NET Framework中內建的COM調用.NET類。你使用COM還是使用管理擴充訪問.NET組件要依賴於你的工程。在一些情況下,利用現有的COM支援是最好的選擇。在另一些情況下,使用管理擴充可能會增加效能和開發人員的生產率。

在同一可執行檔中的管理和內建代碼

Visual C++編譯器能在管理和非管理上下文中自動而透明的翻譯資料、指標和指令流。這個過程是允許管理擴充無縫地與非管理代碼互動的過程。開發人員能夠控制什麼樣的資料和代碼可以管理。選擇每個類或函數是管理還是未管理能力為開發人員提供了更大的靈活性。一些代碼或資料類型在非管理環境中執行得要比較好。另一方面,管理代碼由於如片段收集和類庫等特性,它提高了開發人員的生產率。現有非管理代碼可以一次一部分地轉化為管理代碼,因此保留了已有的投資。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.