關于com聚合 CoCreateInstance的第二個參數
CoCreateInstance的第二個參數是用在聚合時的內部組件創建時使用的,這個參數把外部組件的IUnknown的指針傳遞給內部組件,內部組件的代理IUnknown按照需要調用這個外部組件的IUnknow接口,或者調用內部組件自己的非代理IUnknown。
posted @ 2009-08-07 09:58 把握命運 閱讀(454) | 評論 (0) | 編輯 收藏
對自己所做的事要有興趣,同時還要能夠堅持不懈
CoCreateInstance的第二個參數是用在聚合時的內部組件創建時使用的,這個參數把外部組件的IUnknown的指針傳遞給內部組件,內部組件的代理IUnknown按照需要調用這個外部組件的IUnknow接口,或者調用內部組件自己的非代理IUnknown。
posted @ 2009-08-07 09:58 把握命運 閱讀(454) | 評論 (0) | 編輯 收藏
DLL 通常具有在 DLL 加載時必須執行的初始化代碼(如分配內存)。使用 Visual C++ 時,在何處添加初始化 DLL 的代碼取決于生成的 DLL 類型。如果不需要添加初始化代碼或終止代碼,則在生成 DLL 時沒有什么特別的事情要做。如果需要初始化 DLL,則下表描述了應在何處添加代碼。
DLL 類型 |
添加初始化代碼和終止代碼的位置 |
---|---|
規則 DLL |
在 DLL 的 CWinApp 對象的 InitInstance 和 ExitInstance 中。 |
擴展 DLL |
在“MFC DLL 向導”生成的 DllMain 函數中。 |
非 MFC DLL |
在您提供的稱為 DllMain 的函數中。 |
在 Win32 中,所有 DLL 都可能包含一個可選的入口點函數(通常稱為 DllMain),初始化和終止時都要調用此函數。這使您有機會在需要時分配或釋放其他資源。Windows 在四種情況下調用入口點函數:進程附加、進程分離、線程附加和線程分離。
C 運行時庫提供了一個名為 _DllMainCRTStartup 的入口點函數,并調用 DllMain。根據 DLL 類型的不同,應在源代碼中包含一個名為 DllMain 的函數,或應用 MFC 庫中提供的 DllMain。
為初始化非 MFC DLL,DLL 源代碼必須包含一個名為 DllMain 的函數。下列代碼顯示了一個基本主干,說明 DllMain 定義的大概樣子:
posted @ 2009-08-04 00:08 把握命運 閱讀(1225) | 評論 (0) | 編輯 收藏
posted @ 2009-08-03 17:13 把握命運 閱讀(762) | 評論 (0) | 編輯 收藏
調用約定 | extern "C" 或 .c 文件 | .cpp、.cxx 或 /TP |
---|---|---|
C 命名約定 (__cdecl) |
_test |
?test@@ZAXXZ |
Fastcall 命名約定 (__fastcall) |
@test@0 |
?test@@YIXXZ |
標準調用命名約定 (__stdcall) |
_test@0 |
?test@@YGXXZ |
模塊定義 (.def) 文件是包含一個或多個描述 DLL 各種屬性的 Module 語句的文本文件。如果不使用 __declspec(dllexport) 關鍵字導出 DLL 的函數,則 DLL 需要 .def 文件。
.def 文件必須至少包含下列模塊定義語句:
1.文件中的第一個語句必須是 LIBRARY 語句。此語句將 .def 文件標識為屬于 DLL。LIBRARY 語句的后面是 DLL 的名稱。鏈接器將此名稱放到 DLL 的導入庫中。
2.EXPORTS 語句列出名稱,可能的話還會列出 DLL 導出函數的序號值。通過在函數名的后面加上 @ 符和一個數字,給函數分配序號值。當指定序號值時,序號值的范圍必須是從 1 到 N,其中 N 是 DLL 導出函數的個數。
例如,包含實現二進制搜索樹的代碼的 DLL 看上去可能像下面這樣:
提示: |
---|
如果希望優化 DLL 文件的大小,請對每個導出函數使用 NONAME 屬性。使用 NONAME 屬性時,序號存儲在 DLL 的導出表中而非函數名中。如果導出許多函數,這樣做可以節省相當多的空間。 |
posted @ 2009-08-03 17:12 把握命運 閱讀(18686) | 評論 (0) | 編輯 收藏
posted @ 2009-08-03 15:41 把握命運 閱讀(2022) | 評論 (0) | 編輯 收藏
posted @ 2009-08-03 13:41 把握命運 閱讀(240) | 評論 (0) | 編輯 收藏
posted @ 2009-08-03 11:22 把握命運 閱讀(208) | 評論 (0) | 編輯 收藏
posted @ 2009-08-03 10:02 把握命運 閱讀(135) | 評論 (0) | 編輯 收藏
posted @ 2009-07-30 15:34 把握命運 閱讀(194) | 評論 (0) | 編輯 收藏
posted @ 2009-07-30 14:21 把握命運 閱讀(374) | 評論 (1) | 編輯 收藏