作者remmurds (雷穆爾德‧小一)
看板C_and_CPP
標題Re: [問題] 有關於win32 API觀念問題
時間Thu Jan 28 08:03:38 2010
※ 引述《QQ29 (我愛阿蓉)》之銘言:
先釐清一些基本概念。無論是用C++配上Win32 API或者是MFC寫出來的應用程式都是
native,它直接在OS上運作。C#則不同,它是微軟專為 .Net Framework設計的語言,寫
出來的程式為managed,運作在 .Net Framework提供的Virtual Machine上。簡單來說,
跟前者不同的是應用程式與OS之間多了一層被稱為middleware的Virtual Machine,兩者
是有很大的不同的。
如果想對這方面更進一步了解,建議你可參考一下Java的運作模式。.Net Framework
與它有許多相似之處,而且Java的執行環境相較於 .Net Framework顯得單純許多。
: 其實我不太知道標題怎麼下...
: 是這樣的
: 常常google win32的api最後都跑道msdn 然後整面好像都是C#的function..
前面有提到了,C#是微軟專為 .Net Framework設計的語言,所以你在MSDN上所找到
的那些跟C#有關的function、class或其他玩意兒都是由 .Net Framework所提供的。
: 因為我只會基本的C++ 和一點點的win32 基本概念
: 我有滿肚子奇怪的疑惑就是
: 我想win32 API這是for C++ 還是說他只是一個概念
嚴格說起來Win32 API不是概念,是微軟對於Windows核心可用的一系列API的統稱。
最初它確實是設計給C/C++呼叫用的。
: 我想表達的是 例如win32有api 給我們用eclipse畫出橢圓
: 那我相信C#也有可以畫出橢圓的函式
確實是有的,可是就如同前面所述,它是由 .Net Framework提供的method,跟Win32
Api有很大的不同。
嚴格說起來,C#只是一種語言,你的這個問題其實是在問.Net Framework有沒有提供
繪製橢圓的function。
: 那這兩個函式我們都稱作win32 API嗎?
當然不是,前面已提過了。
: 那這兩個函式的底層是否有共通點
: 意思是說~~ for C++ win32 API的樣子可能是 void Eclipse(...)
: for C#可能是 public void XXXEclipse之類的
: 他們會是一個殼子 其實裏面兩個都呼叫同一個 " 東西 "??
: 如果是~~~這個"東西" 是以什麼形式存在.....dll? lib?還是exe....
: 因為我只知道c++有dll 如果c#也存在dll的話
.Net Framework也是由許多DLL所組成的,稱呼為「組件」,不過就如同前面所提到
的應用程式一般, .Net Framework的DLL本質上也是managed,跟一般Win32 API或MFC所
撰寫的native DLL不同。
: 是否可以在C# 或是 C++ 呼叫對方寫的dll或是其他東西
.Net Framework確實有提供一套門路可以讓C#連結到native的DLL。
: 這有牽扯到C# @@ 不過想說版友應該都有接觸過 想請教這些概念性的問題
: 謝謝..
: 我對win32 API真是不太了解他的涵義
每日一Google,有益身體健康。:)
--
「我從來都不喜歡 MFC,從一開始就不喜歡,我認為它的設計不良,
且幾乎不能算是物件導向。」
- Charles Petzold
http://reassert.blogspot.com
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.41.81
※ 編輯: remmurds 來自: 219.87.77.101 (01/28 09:36)
推 spider391:講解的簡單明瞭 (讚) 名片檔也推一下 01/28 09:54
推 VictorTom:推一下:) 01/28 10:05
推 creeds:真是釐清我不少觀念、推專業的回答 01/28 14:00
推 ianfang:很清楚 推!! 01/28 18:05