作者ssagit (ssagit)
看板Programming
標題Re: [請益] API SDK 傻傻分不清楚
時間Sat Aug 26 01:22:59 2006
※ 引述《aguai.bbs@bbs.sayya.org (阿怪)》之銘言:
: 謝謝前輩指點
: 容我進一步請教
: 大家都說
: JavaRuntime
: 跟
: dotNet Framework
: 是競爭對手
: 可是根據我自己對網路上各式各樣資料的理解
: JavaRuntime在Win32上跟Python,GTK+...等等語言
: 是以差不多的機制運作的
: 各自呼叫各自的dll
: 然後才由dll去做事情
: 我想知道的是
: 這些dll(或exe)跟C:\windows\system32\....裡的那些dll
: 有本質上的不同嗎
就我知道的部分回答,
如果你有寫過 dll, 你會比較容易知道這其中的差別,
即使同樣是 dll, 也有單執行緒/多執行緒、純函數/純資源、
物件導向/非物件導向、常駐/非常駐等不同的區別....
: 當我在*.cpp裡#include "windows.h"時
: 我做了什麼?
: 我是呼叫了MSVC*****.dll
: 還是呼叫了system32.dll?
: (好像要看compiler?)
你就只是 #include "windows.h" 而已,
而且系統也沒有所謂的 MSVC*****.dll、system32.dll 等 dll 檔,
只有當你使用到 Win32 API 的函數時,
它才呼叫 KERNEL、USER、GDI 這三大模組之一,
而這三者都是一進入 Windows 就已經常駐的 dll,
所以不需要再額外把它們 load 進來....
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.67.210.81
推 UNARYvvv:其實有一個 msvcrt.dll 啦..XD220.139.214.134 08/26 01:32
→ UNARYvvv:加上不同版本的220.139.214.134 08/26 01:35
→ UNARYvvv:(C runtime library)220.139.214.134 08/26 01:36
推 ssagit:我之前寫過一個 Win32SDK 的程式, 把它 211.74.191.100 08/26 02:38
→ ssagit:dump 出來看, 並沒有看到 msvcrt.dll .... 211.74.191.100 08/26 02:38
→ ssagit:當然系統是有這個檔案沒錯, 我是覺得要看你 211.74.191.100 08/26 02:38
→ ssagit:實際使用到的函數, 才決定會使用哪些dll檔. 211.74.191.100 08/26 02:39
推 UNARYvvv:不過如果你開個 MFC project 編出 exe 61.228.198.60 08/26 17:26
→ UNARYvvv:看一下應該就會有了 61.228.198.60 08/26 17:32
→ UNARYvvv:其實我也只是對第二句有點疑問而已 61.228.198.60 08/26 17:33
→ UNARYvvv:(跟 windows.h 也沒什麼關係了) 61.228.198.60 08/26 17:33
→ UNARYvvv:同意用到的函式決定用到的 DLL 61.228.198.60 08/26 17:34