Windows中win32 和 點net 概念問題

來源:互聯網
上載者:User

運行平台:1、CLR 是.net的運行引擎,也是.net的核心,使用CIL JIT 2、Win32 直接運行 產生可執行檔

 

Visual Studio 提供選擇 選擇庫 和平台, 1、MFC/API  (C/C++編譯器內建C++標準庫 2、ATL  3、 字元集  4 、公用語言支援(平台選擇)

 

(可選平台語言)

           Visual C++ 偏向於調用win32但也可以使用CLR  有了 C++/CLR

(只能net平台)

           VisualBasic 已整合到CLR上 可使用.net和 win32

           C#  依賴於.net同時可以在裡面使用win32整合net庫

 

Visual Studio  有java  C++ Basic  C# 到CIL的解析器,同時有C++  Basic 到可執行程式的編譯器 F#等別的編譯器。

 

C#是為.net架構而建立的一程語言。.net為了實現 手機等各個平台共應用而設計 。

 

 

 

C++ 中引用.net類庫

 

NET中的類型分為兩類:值和引用,值對象是可以儲存在棧上的,參考型別的對象是儲存在託管堆上的。

利用託管C++,也能享受託管啟動並執行幾個良好機制。
先瞭解幾個符號:
^    : 託管堆對象的引用
%    : 託管對象引用解引用的參考型別(類似&) 這個比較複雜,看下面例子(1):
ref  : 定義引用型類
val  : 定義值型類

gcnew: 在託管堆上建立對象(這裡不使用舊的文法規則__gc)

 

例(1):

void f(Class1% c){
 c.show();
}

int _tmain(int argc, _TCHAR* argv[])
{
 Class1^ c1 = gcnew Class1();
 f(*c1);
 return 0;
}

 

//運行環境:CLR

 

struct S //C++實值型別
{
    int i;
};

value struct ValS //實值型別
{
    int i;
};

ref struct RefS //參考型別
{
    int i;
};

void TestProc1()
{
    S s;
    s.i = 10;
    S *ps = new S();
    ps->i = 20;
    //     S ^gcs = gcnew S(); //error 因為S是C++實值型別,不能在託管堆建立
    //     gcs->i = 30;
    //     S^ %rgcs = gcs;
    //     rgcs->i = 40;
    System::Console::WriteLine(s.i);
    System::Console::WriteLine(ps->i);
}

void TestProc2()
{
    ValS s;
    s.i = 10;
    ValS *ps = new ValS();
    ps->i = 20;
    ValS ^gcs = gcnew ValS(); //可以在託管堆建立
    gcs->i = 30;
    ValS^ %rgcs = gcs;  //注意這個文法,對託管堆的引用的引用使用'%'(託管引用),而不能使用'&'(非託管引用)
    rgcs->i = 40;
    System::Console::WriteLine(s.i);
    System::Console::WriteLine(ps->i);
}

void TestProc3()
{
    RefS s;
    s.i = 10;
    //RefS *ps = new RefS(); //error,只能在託管堆建立
    //ps->i = 20;
    RefS ^gcs = gcnew RefS(); //在託管堆建立
    gcs->i = 30;
    RefS^ %rgcs = gcs;  //注意這個文法,對託管堆的引用的引用使用'%'(託管引用),而不能使用'&'(非託管引用)
    rgcs->i = 40;
    System::Console::WriteLine(s.i);
    //System::Console::WriteLine(ps->i);
}

 

 

Visual Basic  版本

  2002年開始, 微軟將 .NET Framework與 Visual Basic 結合而成為 Visual Basic .NET (vb .net),重新打造 VB,新增許多特性及文法,又將 VB 推向一個新的高度。最新版本 Visual Basic 2012 也將帶來許多令人期待的新功能。 通過幾年的發展,它已成為一種專業化的開發語言和環境。使用者可用Visual Basic 快速建立 Windows程式,並可編寫企業水平的 用戶端/ 伺服器程式及強大的 資料庫應用程式。

Visual Basic 各版本介面 (8張)

Visual Basic 發展史簡
發布日期 名稱 說明
.NET Framework 引入之前
1991-04 Visual Basic 1.0 Windows 版本  
1992-09 Visual Basic 1.0 DOS 版本  
1992-11 Visual Basic 2.0 對於上一個版本的介面和速度都有所改善。
1993-06 Visual Basic 3.0 包含一個資料引擎,可以直接讀取 Access 資料庫。
1995-08 Visual Basic 4.0 發布了32位和16位的版本。其中包含了對類的支援。
1997-02 Visual Basic 5.0 包含了對使用者自建控制項的支援,且從這個版本開始 VB 可以支援中文。
1998-10 Visual Basic 6.0  
.NET Framework 引入之後
2002-02 Visual Basic .NET 2002 (7.0) 由於其使用了新的核心和特性,所以很多 VB 的程式員都要改寫程式。
2003-04 Visual Basic .NET 2003 (7.1) 主要改進了健全狀態,提升了 IDE 以及運行時穩定性。
2005-11 Visual Basic 2005 (8.0) 是 vb .net 的重大轉變,微軟決意在其名稱中去掉了".NET"部份。VB2005 提供 My 偽命名空間、泛型、操作符重載,等新語言特性。
2007-11 Visual Basic 2008 (9.0) 提供支援 IIF 函數、匿名類、LINQ、Lambda 運算式、XML 資料結構,等新語言特性。
2008-03 微軟宣布結束對於 VB 6.0 的延長支援。
2010-04 Visual Studio 2010 (10.0) 提供支援 Dynamic Language Runtime (DLR)、自動實現屬性、集合初始化、不需要在代碼斷行書寫時輸入底線“_”,等新語言特性。
2012-05 Visual Studio 2012 (11.0) RC 提供支援更簡易的非同步編程(Asynchronous Programming)、Iterator、擴充 Global 關鍵詞,等新語言特性。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.