一、VC++6.0如何生成DLL文件

 

(1)新建WIN32 Dynamic-link Library工程,工程名为MyDll,选择A simple DLL project类型。
(2)MyDll.h的内容如下:
以下是引用片段:
  extern "C" _declspec(dllexport) int sum(int a,int b);//本文所有的例子只有一个sum即加法函数。
(3)MyDll.cpp的内容如下:
以下是引用片段:
  #include "stdafx.h" 
  #include "windows.h" 
  #include "MyDll.h" 
  BOOL APIENTRY DllMain( 
  HANDLE hModule, 
  DWORD ul_reason_for_call, 
  LPVOID lpReserved 
  ) 
  { 
  return TRUE; 
  } 
  extern "C" _declspec(dllexport)int sum(int a, int b) 
  { 
  return a+b; 
  }
(4)编译之后产生了MyDll.lib与MyDll.dll两个文件。

 

 

 

二、调用DLL有两种方法:静态调用和动态调用.

调用dll时,你需要有这个dll对应的lib文件和*.h头文件,把这两个文件导入到你的工程中,然后看.h文件中dll提供了哪些可用函数,根据这些函数的定义体,调用即可。

(一).静态调用其步骤如下: 
1.把你的youApp.DLL拷到你目标工程(需调用youApp.DLL的工程)的Debug目录下; 
2.把你的youApp.lib拷到你目标工程(需调用youApp.DLL的工程)目录下; 
3.把你的youApp.h(包含输出函数的定义)拷到你目标工程(需调用youApp.DLL的工程)目 
录下; 
4.打开你的目标工程选中工程,选择Visual   C++的Project主菜单的Settings菜单; 
5.执行第4步后,VC将会弹出一个对话框,在对话框的多页显示控件中选择Link页。然 
后在Object/library   modules输入框中输入:youApp.lib 
6.选择你的目标工程Head   Files加入:youApp.h文件; 
7.最后在你目标工程(*.cpp,需要调用DLL中的函数)中包含你的:#include   "youApp.h " 
注:youApp是你DLL的工程名。 
2.动态调用其程序如下: 
动态调用时只需做静态调用步骤1. 
{ 
HINSTANCE   hDllInst   =   LoadLibrary( "youApp.DLL "); 
if(hDllInst) 
{ 
typedef   DWORD   (WINAPI   *MYFUNC)(DWORD,DWORD); 
MYFUNC   youFuntionNameAlias   =   NULL;   //   youFuntionNameAlias   函数别名 
youFuntionNameAlias   =   (MYFUNC)GetProcAddress 
(hDllInst, "youFuntionName "); 
//   youFuntionName   在DLL中声明的函数名 
if(youFuntionNameAlias) 
{ 
youFuntionNameAlias(param1,param2); 
} 
FreeLibrary(hDllInst); 
} 
}