DLL(Dynamic Link Libraries)全面剖析
2006-07-20 11:40:14 来源:WEB开发网extern "C" EXPORT YourExportedFunction();
如果没有 extern "C" 修饰,输出函数仅仅能从 C++ 代码中调用。
DLL 应用程序从 CWinApp 派生,但没有消息循环。
动态链接到 MFC 的 规则 DLL 应用程序里头的输出函数可以被任意 Win32 程序使用,包括使用 MFC 的应用程序。但是,所有从 DLL 输出的函数应该以如下语句开始:
AFX_MANAGE_STATE(AfxGetStaticModuleState( ))
此语句用来正确地切换 MFC 模块状态。
Regular DLL能够被所有支持 DLL 技术的语言所编写的应用程序所调用。在这种动态连接库中,它必须有一个从 CWinApp 继承下来的类,DLLMain 函数被 MFC 所提供,不用自己显式的写出来。
Extension DLL:用来实现从 MFC 所继承下来的类的重新利用,也就是说,用这种类型的动态连接库,可以用来输出一个从 MFC 所继承下来的类。它输出的函数仅可以被使用 MFC 且动态链接到 MFC 的应用程序使用。可以从 MFC 继承你所想要的、更适于你自己用的类,并把它提供给你的应用程序。你也可随意的给你的应用程序提供 MFC 或 MFC 继承类的对象指针。Extension DLL使用 MFC 的动态连接版本所创建的,并且它只被用 MFC 类库所编写的应用程序所调用。Extension DLLs 和 Regular DLLs 不一样,它没有从 CWinApp 继承而来的类的对象,所以,你必须为自己 DLLMain 函数添加初始化代码和结束代码。
和规则 DLL 相比,有以下不同:
1、它没有从 CWinApp 派生的对象;
2、它必须有一个 DLLMain 函数;
3、DLLMain 调用 AfxInitExtensionModule 函数,必须检查该函数的返回值,如果返回0,DLLMmain 也返回 0;
- ››Dynamic Multipoint Vpn for IPv6 详解
- ››Linkedin iPhone 3.0应用体验
- ››Dynamic link library for Symbian
- ››DLL(Dynamic Link Libraries)专题
- ››DynamicLayout-VC 6.0对话框动态布局解决方案
- ››link 方法
- ››link-list java版
- ››Links and Anchors: Window 2
- ››DLL文件基本原理及修改方法和通过改DLL来美化系统...
- ››Link Server的语法
- ››DLL头文件的格式和应用
- ››DLL初学者指南(非MFC)
更多精彩
赞助商链接