自己初学vc++写的简单的调用dll的例子

计算两个整数的和...................................................................................

(1)定义的dll头文件

工程名为dllCall

头文件名为lib.h

#ifndef LIB_H
#define LIB_H extern   "C"  __declspec(dllexport) int add(int x, int y)
#endif
(2)定义的dll源文件

源文件名为dllCall.cpp

#include "lib.h"
extern   "C"  __declspec(dllexport) int add(int x, int y)
{
 return x + y;
}

下边为调用dll的例子

工程名为dllTest

文件名为dllTest.cpp

#include <stdio.h>
#include <windows.h>
typedef int(*lpAddFun)(int, int); //宏定义函数指针类型
int main(int argc, char *argv[])s
{
 HINSTANCE hDll; //DLL句柄
 lpAddFun addFun; //函数指针
 hDll = LoadLibrary("D://dll//dllCall.dll"); //加载dll函数库给hdll实例句柄
 if (hDll != NULL){
  //printf("aaaaaaa/n");
  addFun = (lpAddFun)GetProcAddress(hDll, "add");//从hdll实例句柄中获得add函数的执行地址分为宏定义的函数指针
     if (addFun != NULL){
    //printf("/nbbbbbbb");
   int result = addFun(2, 3);//执行函数指针指向的函数地址
       //printf("/nccccccc");
   printf("%d/n", result); //打印结果并换行
  }
  FreeLibrary(hDll);//释放函数库实例句柄s
 }
 return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章