DLL导出函数的声明和调用

【转载】DLL导出函数的声明和调用
文章转载自:http://blog.csdn.net/antoinette/article/details/2112671


导读: 
   声明导出函数: 
  DLL内的函数分两种:只在DLL内部调用的、DLL导出函数——供应用程序调用 
  声明导出函数两种方法: 
  (1)在函数声明中加上extern"C" int _declspec(dllexport)add(int x,int y);//一定要加上extern "C" 
  (2)采用模块定义(.def)文件声明。.def文件为链接器提供了有关被链接程序的导出、属性和其他信息。 
  MFC AppWizard为MFC DLL创建一个.def文件,而Win32 DLL,用户必须自己创建.def文件。 
  .def定义示例代码如下: 
  dll.def:导出DLL函数 
  LIBRARY dllTest 
  DESCRIPTION "math" 
  EXPORTS 
  GlobleVar DATA 
  add @1 
  sub @2 
  .def文件的规则为: 
  (1)LIBRARY语句指出DLL的名字 
  (2)EXPORTS语句后列出一系列函数名称。可以在导出函数后加@n,表示函数序号。 
  (3);表示注释,且注释不能和语句共享一行。 
  (4)可选部分——DESCRIPTION语句,原来描述DLL的用途。 
  (5)变量名 DATA:导出全局变量 
   DLL的调用(加载)方式: 
  (1)动态调用(显式链接) 
  LoadLibrary() 
  GetProcAddress() 
  FreeLibrary() 
  (2)静态调用(隐式链接) 
  由编译系统完成对DLL的加载和应用程序结束时对DLL的卸载。需要做两个工作: 
  a:将编译dll工程所得的.lib和.dll文件放入调用dll工程所在的路径。 
  包含.lib文件:#pragma comment(lib,"dllTest.lib") 
  or project->setting->link->... 
  b:声明导入函数,extern "C" int _declspec(dllimport) add(int x,int y)中的_declspec(dllimport)//must add extern "C" 
  Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1881088 

本文转自 
http://blog.csdn.net/blueshelly/archive/2007/11/12/1881088.aspx

你可能感兴趣的:(DLL导出函数的声明和调用)