DLL导出函数初接触

  虽然曾经不止因为一两个软件而去下载dll文件,放到system32文件夹下了。但,对于动态链接库和静态链接库的理解还是了了。这天忽然要用到DLL的相关知识,才发现自己懂的真是够表层的。

  为了预防以后再次遭遇相同的尴尬,还是记录下~~

  void __stdcall test() {
      printf("This is test function in target module.\n");
  }

  target.dll  中的函数  需要被导出到测试程序

  typedef void (*Func)(); //函数原型,创建函数指针的匹配声明

  HMODULE hDLL=LoadLibrary("./target.dll"); //加载DLL

  Func f = (Func)GetProcAddress(hDLL,MAKEINTRESOURCE(1)); //获取对应函数地址

  target.def

  ;Dll名

  ;导出函数名  序号

  LIBRARY   target
  EXPORTS
     test   @1

  注意: def文件一定要导入到项目中编译出 dll和lib文件,测试程序中无需def文件

     ;为注释语句 不能与代码同行

     LIBRARY 为识别关键字 必须在起始位置

posted on 2012-09-12 11:23  pareer  阅读(135)  评论(0编辑  收藏  举报

导航