做dll创建时有三种类型选择,分别做如何解释啊?谢谢啊! 做dll创建时有三种类型选择,分别做如何解释啊?谢谢啊! regular dll with MFC starically linked regular dll useing shared MFC DLL MFC Extension DLL (use shared MFC DLL) ------解决方案-------------------- http://blog.hc360.com/portal/personShowArticle.do?articleId=64283 ------解决方案-------------------- Non-MFC DLL:指的是不用 MFC 的类库结构,直接用 C 语言写的 DLL,其输出的函数一般用的是标准 C 接口,并能被 非 MFC 或 MFC 编写的应用程序所调用。 Regular DLL:和下述的 Extension DLLs 一样,是用 MFC 类库编写的。明显的特点是在源文件里有一个继承 CWinApp 的类。其又可细分成静态连接到 MFC 和动态连接到 MFC 上的。 静态连接到 MFC 的动态连接库只被 VC 的专业 版和企业版所支持。该类 DLL 应用程序里头的输出函数可以被任意 Win32 程序使用,包括使用 MFC 的应用程序。输入函数有如下形式: 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 函数添加初始化代码和结束代码。 ------解决方案-------------------- 可以到www.vehome.net中下载一个关于dll的chm文件,里面有例子也有关于这些基本的东西的讲解。 |
|