| 网站首页 | 文章中心 | 电子书下载 | 矢量图库 | 视频教程 | 素材下载 | 程序代码下载 | JS代码 | 论坛 | 
常用软件类:
|杀毒安全 |联络聊天 |网络软件 |多媒体类 |系统工具 |图形图像 |系统工具 |应用软件 |行业软件
开发设计类:
|动画制作 |图像处理 |3D设计 |操作系统 |站长学院 |网络相关 |WEB设计 |数据库类 |程序开发
VC动态链接库DLL 开发技巧
作者:佚名    文章来源:网络    点击数:    更新时间:2006-11-24
 

动态链接库(DLL,即 Dynamic-Link Library)是可执行的模块,但它没有自己的堆栈,必须在调用动态链接库函数的程序环境下运行。动态链接库不仅可以作为一个运行模块,包括函数代码,而且可以包含程序以外的任何数据或资源(位图、图标等等)。动态链接库就是给应用程序提供函数或者资源。 
  动态链接与静态链接是相对立的。静态链接的时候,可执行程序内包含了所访问的函数的代码,可执行程序占用的空间较大;但运行时,不需要其他模块支持,从而速度相对较快。动态链接的可执行程序中不包含动态访问的函数代码,仅仅包含对它的参考,运行时需要其他模块(DLL)的支持,速度相对较慢。 
  动态链接库是Windows的一种极其重要的技术。它使得开发人员可以通过编写动态链接库,方便灵活的实现大型程序的开发,按自己的意愿对操作系统进行扩展。 
  下面通过例子介绍如何在动态链接库中定义函数、资源、和类以及如何在工程中使用动态链接库中已定义的函数、资源、类。 
  一、 函数的定义和使用方法: 
  第一步: 
   运行AppWizard,定义项目名为mydll,选择MFC AppWizard(dll),而不是MFC AppWizards(exe)。 
  第二步: 
   在这个例子中,只有一个AppWizard屏幕出现,选择MFC扩展DLL(MFC Extension DLL (using shared MFC DLL),点击FINISH生成工程。 
  第三步: 
   点击File中的New,选择C/C++ Header File,File Name中输入dll,点击OK,创建dll.h。输入extern "C" __declspec(dllexport) int fun(int x1,int x2,int x3); ,保存。 
  第四步: 
   点击File中的New,选择C++ Source File,File Name中输入dll,点击OK,创建dll.cpp。输入 
  #include "stdafx.h" 
  #include "dll.h" 
  extern "C" __declspec(dllexport) int fun(int x1,int x2,int x3) 
   { 
    return x1+x2+x3; 
   } 
  编译生成mydll.dll和mydll.lib。 
  第五步: 
  选择Project 中Add To Project 中的New , 重新生成一个工程,选择MFC AppWizards(exe),项目名为mydlltest , 选择Single Document ,点击FINISH,生成一个新的工程。选择菜单中的Project àSet Active Project àmydlltest ,将mydlltest设为当前活动工程。 
  第六步: 
  拷贝…\mydll\debug\mydll.dll 到 ..\mydlltest\debug\下,拷贝…\mydll\debug\mydll.lib到…\mydlltest\目录下。 
  第七步: 
  在mydlltestView.cpp中的#endif下添加 
  extern "C" __declspec(dllimport) int fun(int x1,int x2,int x3); 
  在void CMydlltestView::OnDraw(CDC* pDC)中添加代码如下: 
  void CMydlltestView::OnDraw(CDC* pDC) 
   { 
    CMydlltestDoc* pDoc = GetDocument(); 
    ASSERT_VALID(pDoc); 
    // TODO: add draw code for native data here 
    int x=fun(1,2,3); 
    CString str; 
    str.Format("%d",str); 
    pDC->TextOut(10,10,x); 
   } 
  第八步: 
  在WorkSpace中的mydlltest files上点击右键,选择Add files to Project ,将mydll.dll添加到工程。 
好了,我们的工作做完了,运行一下看看吧! 

[1] [2] 下一页


相关文章