资源说明:C++ COM实现之一 创建一个DLL
COM是一种接口技术,它提供了一种方法用于客户程序进行调用。COM原理和技术的文章已经很多了,就不过多讲解了,这里只注重实现。下面分几步对进程内COM组件进行编码实现以达到对实现一个COM的清晰的认识,目的是通过COM接口方法调用DLL中的函数。
首先,创建一个标准的win32 DLL项目mycom,dllmain入口实现如下:
[c-sharp] view plaincopy
1. DWORD g_dwAttachedProcesses = 0L; // # of attached processes
2. DWORD g_dwPageSize = 0L; // System page size
3. HINSTANCE g_hInstance = 0L; // Instance Handle
4. LONG g_cLock = 0L; // # of outstanding objects
5. BOOL APIENTRY DllMain( HMODULE hModule,
6. DWORD ul_reason_for_call,
7. LPVOID lpReserved
8. )
9. {
10. BOOL fRetVal = FALSE;
11. SYSTEM_INFO SystemInformation;
12. switch(ul_reason_for_call)
13. {
14. case DLL_PROCESS_ATTACH:
15. // Assume successfully initialized
16. fRetVal = TRUE;
17. // Do one-time initialization when first process attaches
18. if(!g_dwAttachedProcesses)
19. {
20. g_hInstance = (HINSTANCE)hModule;
21. // Get the system page size
22. if(!g_dwPageSize)
23. {
24. GetSystemInfo( &SystemInformation ); // can't fail
25. g_dwPageSize = SystemInformation.dwPageSize;
26. }
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。