动态链接库(dll)的调用方法-阿里云开发者社区

开发者社区> 科技小先锋> 正文

动态链接库(dll)的调用方法

简介:
+关注继续查看
本文实例是在vs2005中调用dll
一、静态调用方法:
   (1)在工程属性设置中加入该库的静态库(.lib)
   (2)将该库的头文件(.h)加入到工程中;
   (3)将动态库(.dll)放到工程中相应目录下;
前两步骤是为了标明动态库的入口函数,以使其他函数可以正确的调用动态库。调用时,只需要包含.h头文件就可以使用库中的函数了。
二、动态调用方法:
动态调用法要用Windows API中的LoadLibrary()GetProcAddress()来调入dll库,指出库中函数位置。
该方法不需要.lib库和.h文件。下面以一个实例来说明该方法。
#include "stdafx.h" 
#include <wtypes.h> 

int (*GetMachineFingerprint)(unsigned char *);    

int _tmain(int argc, _TCHAR* argv[]) 

  HINSTANCE     hInst;            

  hInst     =     LoadLibrary("MachineInfo.dll");            
  (FARPROC&)GetMachineFingerprint = GetProcAddress(hInst,"GetMachineFingerprint");    
    
  unsigned char FingerPrintf[20] = {0}; 

  GetMachineFingerprint(FingerPrintf); 

  printf("%s\n", FingerPrintf); 
    
  FreeLibrary(hInst);    

  while(getchar()); 

  return 0; 
}
上面代码是调用库MachineInfo.dll中的函数
int GetMachineFingerprint(unsigned char *pFingerPrint)


本文转自jazka 51CTO博客,原文链接:http://blog.51cto.com/jazka/317333,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
深析静态链接库和动态链接库相同函数覆盖及库调用顺序问题
注意:编译器为gcc,若使用g++,请在库里面加上extern “C”    两个静态库    首先测试静态链接库,大概的代码如下:    liba.c #include   #include   #include "libA.
1784 0
转:LINUX系统中动态链接库的创建与使用
LINUX系统中动态链接库的创建与使用 雨亦奇 01-8-6 下午 03:09:11 大家都知道,在 WINDOWS系统中有很多的动态链接库(以.DLL为后缀的文件,DLL即Dynamic Link Library)。
758 0
regsvr32 注册.dll的用法
在cmd窗口或者开始→运行中输入下面两个命令:Regsvr32 C:\Program Files (x86)\Environment.dll 或 Regsvr32 C:\\Program Files (x86)\\Environment.dll均提示下面的错误:RegSvr32 [Content] 模块“C:\ProgramFiles(x86)\Environment.dll”加载失败。
1004 0
Android官方开发文档Training系列课程中文版:调用相机之控制相机
原文地址:http://android.xsoftlab.net/training/camera/cameradirect.html 在这节课,我们会讨论如何使用Android框架API来直接控制相机硬件。
896 0
GCC同时使用静态库和动态库链接
一 在应用程序需要连接外部库的情况下,linux默认对库的连接是使用动态库,在找不到动态库的情况下再选择静态库。使用方式为: gcc test.cpp -L. -ltestlib 如果当前目录有两个库libtestlib.so libtestlib.a 则肯定是连接libtestlib.so。
795 0
诡异的druid链接池链接断开故障经验总结
诡异的druid链接池链接断开故障经验总结 标签: druid mysql mysqlReplication haproxy shardingJDBC 背景 症状 排查 修复 背景 最近在陆续做机房升级相关工作,配合DBA对产线数据库链接方式做个调整,将原来直接链接读库的地址切换到统一的读负载均衡的代理 haproxy 上,方便机柜和服务器的搬迁。
2805 0
6967
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载