Re: [問題] Media Foundation of COM
看板C_and_CPP (C/C++)作者chengcti (卡馬請出來面對!!)時間13年前 (2012/10/08 09:33)推噓1(1推 0噓 7→)留言8則, 2人參與討論串2/2 (看更多)
※ 引述《ThomasHuang (命賤如草)》之銘言:
: 1.這個專案會產生一個COM元件包在DLL檔裡,還是會是一個單純的DLL檔。
: 我觀察這個專案架構,發現裡面有很多DLL開頭的函式,
: 其中包含了DllRegisterserver & DllUnregisterserver,
: 並且也有GUID的宣告,所以應該是個COM元件。
: 但是COM元件不是都應該有介面嗎?我找了很久,
: 都沒有看到CClassFactory & CGrayscale兩個類別的介面宣告,
: 所以這個專案到底是COM元件還是單純的DLL?
COM, but it's based on DLL (in-process server) not EXE(out-process server)
: 2.Dll開頭的函式,到底是做甚麼用的。
: 一般單純的DLL只會有DllMain,但是這個專案中有很多Dll開頭的函式,
: 不知道高手們可不可以為小弟解釋一下,需要這些函式的原因,
: 與這些函式的功用。
COM in-process server 需要實作四個 entry
DLLRegisterserver, DLLUnregsiterserver
DllGetClassObject - real entry
DllCanUnloadNow
前兩個會在 type libery 內註冊 com 的 version, directory 等
當 call by name 時, 可以由typelibery找到元件的位置.
: 3.這個專案是怎麼開出來的。
: 小弟使用VS2010分別開啟新的DLL專案與ATL專案,
: 想藉由觀察全新的專案來判斷這個專案屬於哪一種,
: 但是開出來的都與這個專案不同,這讓我非常的疑惑,
: 到底這個專案是怎麼做出來的,還是說是需要自己刻出來,
: 無法使用專案範本?
vs2010 ATL template 自己產生對應的 function
: 4.這樣的專案要怎麼除錯
: 這不是一般常見的專案,為了方便除錯經常會用到單步執行功能,
: 想請問一下這種專案要怎麼單步執行以除錯呢?
要自己 create 一個 host, in-process server 是由 host 啟動而非
自己啟動. 故要有一個 host 作 debug 宿主
REF: http://msdn.microsoft.com/en-us/library/f1tkezh9(v=vs.71).aspx
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 42.72.131.130
推
10/08 11:52, , 1F
10/08 11:52, 1F
→
10/08 11:52, , 2F
10/08 11:52, 2F
→
10/08 14:19, , 3F
10/08 14:19, 3F
→
10/08 14:19, , 4F
10/08 14:19, 4F
→
10/08 16:09, , 5F
10/08 16:09, 5F
→
10/08 16:09, , 6F
10/08 16:09, 6F
→
10/08 16:10, , 7F
10/08 16:10, 7F
→
10/08 16:10, , 8F
10/08 16:10, 8F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章