科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件用VC编制DLL程序的方法小结

用VC编制DLL程序的方法小结

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在VC 6.0中的MFC可以支持三种形式的DLL,包括常规静态DLL、常规动态DLL以及扩展DLL。

作者:赵永华 来源:yesky 2007年10月20日

关键字: VC Dll 程序

  • 评论
  • 分享微博
  • 分享邮件
DLL指的是动态链接库(Dynamic Link Library),它是一个可以被多个应用程序(甚至是不同语言编写的应用程序)同时调用的可执行二进制文件,是一个可共享的库。DLL是建立在客户/服务器通信的概念上,包含若干函数、类或资源的库文件,函数和数据被存储在一个DLL(服务器)上并由一个或多个客户导出而使用,这些客户可以是应用程序或者是其它的DLL。显然,DLL是VC职业程序员的必修课,因为在开发商业化软件中,总是要将应用程序分成多个模块化DLL,以便于调试、链接和维护。

  在VC 6.0中的MFC可以支持三种形式的DLL,包括常规静态DLL、常规动态DLL以及扩展DLL。使用VC 6.0的AppWizard可以创建这三种形式的DLL:点击菜单项"File>New…",在弹出的"New"对话框中激活"Project"栏,在列表框选中"MFC AppWizard(dll)",并输入工程名称和路径信息(如图一);


图一

  单击"OK"按钮,弹出"MFC AppWizard-Step 1 of 1"对话框(如图二),


图二

  就会看到三个可选圆按钮:"Regular DLL with MFC statically linked"、"Regular DLL using shared MFC DLL"和"MFC Extension DLL(Using shared MFC DLL)"。它们依次对应着三类DLL。常规静态DLL与常规动态DLL的区别是:前者使用的是MFC的静态链接库,生成的DLL文件长度大,一般不使用这种方式,后者使用MFC的动态链接库,生成的DLL文件长度小;动态链接到MFC的常规DLL所有输出的函数应该以如下语句开始(用于正确切换MFC模块状态):

AFX_MANAGE_STATE(AfxGetStaticModuleState( ))

  扩展DLL用来建立MFC的派生类,只被用MFC类库所编写的应用程序调用。常规DLL(包括静态与动态)的一个特点是在源文件里有一个继承CWinApp的类(从CWinApp派生,但没有消息循环),被导出的函数是C++类或者C++成员函数,调用常规DLL的应用程序不必一定是MFC应用程序。扩展DLL和常规DLL不一样,它没有一个从CWinApp继承而来的类的对象,编译器默认了一个DLL入口函数DLLMain()作为对DLL的初始化。
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章