您的位置:首页 > 其它

DLL导出函数的声明和调用

2008-02-22 10:36 218 查看
导读:
  声明导出函数:
  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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: