作者freaky (jon)
看板C_Sharp
標題Re: C#的視窗程式設計
時間Mon Nov 11 16:02:21 2002
※ 引述《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