网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
用DLL为应用程序预留待扩展功能接口
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式

动态链接函数库(Dynamic Link Library 简称DLL)是组成Windows系统的重要元素之一。Windows将构成其系统的大部分程序代码、数据以及经常用到的资源,以动态链接函数库(二进制文件)的形式存贮在磁盘里。本文主要介绍如何在应用程序中预留待扩展功能接口,以及利用DLL编写这类扩展功能代码的方法。  

应用实例  
  在开发应用程序的时候考虑到以后可能要添加某些新的功能,为避免修改源程序所带来的麻烦,我们可以在开发应用程序的过程中先预留一个扩展功能接口,以后需要扩展功能时,只要把扩展功能部分的代码单独编译成DLL即可。下面是一个示例程序,该示例程序分为应用程序和扩展功能两部分,当应用程序收到WM_CREATE消息时,检查是否有扩展功能,若有则装入;否则返回。该程序在Windows 95下,用Borland c++ 4.5调试通过。  

  /*------PRAC.C 应用程序部分------*/  

  #include <windows.h>  

  #include "prac.h"  

  int PASCAL WinMain(HANDLE, HANDLE, LPSTR, int);  

  long FAR PASCAL MainWndProc(HWND, WORD, WORD, LONG);  

  void MsgFilter(HWND , WPARAM );  

  FARPROC LpExtProc ;  

  /*------- WinMain() -------*/  

  int PASCAL WinMain (HANDLE hInstance, HANDLE hPrevInstance,  

             LPSTR lpszCmdLine, int nCmdShow)  

  {  

   MSG   msg;  

   HWND   hWnd;  

   WNDCLASS wndclass;  

   if ( ! hPrevInstance )  

     {  

      wndclass.style = CS_HREDRAW | CS_VREDRAW;  

      wndclass.lpfnWndProc = MainWndProc;  

      wndclass.cbClsExtra = 0;  

      wndclass.cbWndExtra = 0;  

      wndclass.hInstance = hInstance;  

      wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION);  

      wndclass.hCursor = LoadCursor (NULL, IDC_ARROW);  

      wndclass.hbrBackground = GetStockObject (WHITE_BRUSH);  

      wndclass.lpszMenuName = "OurOwnMenu"; //装入应用程序菜单  

      wndclass.lpszClassName = "Application";  

      if ( ! RegisterClass (&wndclass) )  

       return FALSE;  

     }  

   hWnd = CreateWindow ( "Extend Function" ,  

              "应用程序示例",  

              WS_OVERLAPPEDWINDOW,  

              CW_USEDEFAULT,  

              CW_USEDEFAULT,  

              CW_USEDEFAULT,  

              CW_USEDEFAULT,  

              NULL,  

              NULL,  

              hInstance,  

              NULL);  

   If (!hWnd )  

     return FALSE;  

   ShowWindow (hWnd, nCmdShow);  

   UpdateWindow (hWnd);  

   while ( GetMessage (&msg
  • 下一篇资讯: 删除非空目录
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号