使用C++调用C++ dll的关键步骤

被调用的dll项目

  /*dllDemo.h中*/

  extern "C" _declspec(dllexport) void Func(void); //接口函数声明

  /*dllDemo.cpp中*/

  #include "dllDemo.h"

  extern "C" _declspec(dllexport)void Sum(void)    //接口函数定义

  {

  return;

  }

  _declspec,Declare Specification,这个关键字可以理解为声明规范。它有许多用法,语法如下:

  __declspec ( extended-decl-modifier-seq )

  配合dllexport和dllimport,分别表示导入和到导出dll接口函数。

  调用dll的项目 - 显式调用

  1)只需要dll文件

  2)在调用处用法如下

  代码

  // a)声明一个和dll接口函数规则相同的函数指针

  typedef void(*pFunc)(void);

  pFunc doFunc=NULL;

  // b)加载动态链接库dll文件;

  HINSTANCE hDLL;

  hDLL = LoadLibrary("dllDemo.dll");

  // c)本地函数指针获得dll中的接口函数;

  doFunc=(pFunc)GetProcAddress(hDLL,"Func");

  // d)调用

  if(doFunc)

  {

  doFunc();

  }

  3)调用完毕可以使用Freelibrary(hDLL)释放dll文件。

  调用dll的项目 - 隐式调用

  1)需要dll

  2)需要lib,并且在项目依赖项中添加

  3)调用处代码如下

  //a) cpp头部声明来自dll的外部接口函数,函数名必须一样。

  extern "C"_declspec(dllimport) void Func(void);

  int main()

  {

  //b) 像使用其他函数一样使用dll接口函数

  Func();

  return 0;

  }

  4)运行期间无法释放dll。



转文地址:http://www.stuhack.com/biancheng/c/38592.html

posted on 2011-07-25 19:14 shrimp 阅读(810) 评论(0)  编辑 收藏 引用 所属分类: C++


只有注册用户登录后才能发表评论。
网站导航:   博客园   博客园最新博文   博问   管理


<2026年6月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

导航

统计

常用链接

留言簿

文章分类

文章档案

搜索

最新评论