VC根据第三方提供的xxx.dll,xxx.lib,xxx.h调用动态库

 

 

首先要理解以下概念:

*.obj:是c/c++对应的二进制代码格式,是未经重定位的;
*.lib:是若干个obj的集合,本质与obj相同;
*.dll:是可实际运行的二进制代码,重定位的代码;
*.h:是c/c++头文件,当#include时会把包含的文件的内容在c/c++源文件中展开。

(一) 静态调用如下:

1)xxx.dll拷到工程目录(不是解决方案目录,是和Debug和Release平级的目录)下;

2)把xxx.lib拷到工程目录下;

3)把xxx.h拷到工程目录下;

4)依次项目->属性->配置属性->链接器->输入,在附加依赖项中输入xxx.lib;

5)在工程的xxx.c或者xxx.cpp文件中引入xxx.h 就OK了。

(二)动态调用如下:

1)xxx.dll拷到工程目录(不是解决方案目录,是和Debug和Release平级的目录)下;

2)在c/c++源文件中添加include <windows.h>

{
  HINSTANCE myLib = LoadLibrary("xxx.dll");
  if(myLib)
  {
    typedef int (*Fun)(int,int);//参数与返回值都为int类型
    MYFUNC funcAlias = NULL; // 函数别名
    funcAlias= (Fun)GetProcAddress(myLib,"funcName");//funcName是DLL中声明的函数名
    if(funcAlias)
   {  
     funcAlias(param1,param2);
  }
   FreeLibrary(myLib);
 }

}


 

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值