Re: C#的視窗程式設計
※ 引述《Action (雪...)》之銘言:
: ※ 引述《freaky (jon)》之銘言:
: :    用 .NET 的 base class library (BCL) 和 Windows Forms,
: :    既不能用 MFC 也不可以呼叫 Windows API.
:      硬是要用 System.Runtime.InteropServices.DllImport 也沒什麼不可吧?
:      只是好端端的 System.Windows.Forms 不用似乎是自找麻煩...
    System.Runtime.InteropServices 裡面的 classes 主要是拿來
    存取 COM 物件和 native APIs, 但這還是屬於 BCL 的部份, 和
    VC.NET 裡可以直接存取不一樣. 我的重點是, 語言本身不支援創造
    unmanaged 物件.
: :    現在只有 Visual C++.NET 可以混用 native 和 managed code.
:      您說的 "混用" 指的是...?
    在同一個 source file 內可以同時 manipulate managed 和 unmanaged 物件.
    像下面這樣:
    #using <mscorlib.dll>
    using namespace System;
    __nogc class NoGCclass {
    public:
       void Hello() { Console::WriteLine(S"Hello, from NoGCclass!"); }
    };
    __gc class GCclass {
    public:
       void Hello() { Console::WriteLine(S"Hello, from GCclass!"); }
    };
    int main() {
        // creates an object on the C++ heap
        NoGCclass *pNoGC = new NoGCclass();
        pNoGC->Hello();
        // needed because unmanaged objects are not garbage collected
        delete pNoGC;
        // creates an object on the GC heap
        GCclass *pGC = new GCclass();
        pGC->Hello();
        // delete not needed because the garbage collector reclaims the memory
    }
--
※ 發信站: 批踢踢實業坊(ptt.csie.ntu.edu.tw) 
◆ From: 61.222.173.66
討論串 (同標題文章)
完整討論串 (本文為第 1 之 3 篇):
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章