Visual C++
显式链接

在显式链接下,应用程序必须进行函数调用以在运行时显式加载 DLL。为显式链接到 DLL,应用程序必须:

  • 调用 LoadLibrary(或相似的函数)以加载 DLL 和获取模块句柄。

  • 调用 GetProcAddress,以获取指向应用程序要调用的每个导出函数的函数指针。由于应用程序是通过指针调用 DLL 的函数,编译器不生成外部引用,故无需与导入库链接。

  • 使用完 DLL 后调用 FreeLibrary

例如:

typedef UINT (CALLBACK* LPFNDLLFUNC1)(DWORD,UINT);
...
HINSTANCE hDLL;               // Handle to DLL
LPFNDLLFUNC1 lpfnDllFunc1;    // Function pointer
DWORD dwParam1;
UINT  uParam2, uReturnVal;
hDLL = LoadLibrary("MyDLL");
if (hDLL != NULL)
{
lpfnDllFunc1 = (LPFNDLLFUNC1)GetProcAddress(hDLL,
"DLLFunc1");
if (!lpfnDllFunc1)
{
// handle the error
FreeLibrary(hDLL);
return SOME_ERROR_CODE;
}
else
{
// call the function
uReturnVal = lpfnDllFunc1(dwParam1, uParam2);
}
}

您希望做什么?

  • 隐式链接

  • 确定要使用的链接方法

您想进一步了解什么?

  • LoadLibrary 和 AfxLoadLibrary

  • GetProcAddress

  • FreeLibrary 和 AfxFreeLibrary

  • Windows 用来定位 DLL 的搜索路径

请参见

概念

将可执行文件链接到 DLL

vc++ 显式链接dll相关推荐

  1. vc++ 隐式链接dll

    Visual C++ 隐式链接 为隐式链接到 DLL,可执行文件必须从 DLL 的提供程序获取下列各项: 包含导出函数和/或 C++ 类的声明的头文件(.h 文件).类.函数和数据均应具有 __dec ...

  2. 【转】DLL中类的显式链接

    DLL的显式链接在某些时候比隐式链接具有更大的灵活性.比如,如果在运行时发现DLL无法找到,程序可以显示一个错误信息并能继续运行.当你想为你的程序提供插件服务时,显式链接也很有用处. 显式链接到全局C ...

  3. 使用extern C改善显式调用dll

    extern "C"的简单解析         我们前面介绍了显式调用dll的方法,例如  http://www.cnblogs.com/laogao/archive/2012 ...

  4. 关于Linux中so显式链接(dlopen)找不到函数符号地址的问题

    问题背景 在做项目的时候,遇到一个so调用问题,既别人提供了一些so库,其中一个so库包含了给我调用的函数,而这个库里面的函数又调用了其他库的函数,这些所有的库都是linux下编译出来的,而项目则是需 ...

  5. QT显式调用VC开发的DLL

    首先用visual studio创建dll. 然后通过QLibrary显式调用dll #include "QLibrary"

  6. C++ dll的隐式与显式调用

     转载自:http://blog.sina.com.cn/s/blog_53004b4901009h3b.html 应用程序使用DLL可以采用两种方式:一种是隐式链接,另一种是显式链接.在使用D ...

  7. 4.1.4 OS之文件的物理结构(连续分配、链接分配[隐式-显式]、索引分配[链接方案-多层索引-混合索引])

    文章目录 0.思维导图 1.文件块.磁盘块 2.连续分配 3.链接分配 隐式链接 显式链接 链接分配总结 4.索引分配 链接方案 多层索引 混合索引 索引分配总结 5.文件物理结构分配总结 0.思维导 ...

  8. 操作系统之文件管理:5、文件物理结构(连续分配、链式(显式、隐式)分配、索引分配(链接、多层索引、混合索引))

    3.文件物理结构 思维导图 文件块.磁盘块 文件分配方式 1.连续分配 2.链接分配 隐式链接 显式链接 3.索引分配 如果一个文件的大小超过一个磁盘块怎么办? 1.链接方案 2.多层索引 3.混合索 ...

  9. 一文彻底搞懂静态库和动态库,显示链接和隐式链接

    定义:运行时库 静态库 动态库 运行时库:Unix中一个典型的运行时库例子就是libc,它包含标准的C函数,如,print(),exit()等等,用户能创建他们自己的运行库(在Windows中是DLL ...

最新文章

  1. 二分查找的基本原理及实现
  2. 微软发布Azure Cosmos DB产品以及新的物联网解决方案
  3. 1. 初探MongoDB —— 介绍、安装和配置
  4. jQuery学习笔记--目录
  5. mysql主从配置访问_Mysql主从配置,实现读写分离
  6. 蚂蚁集团高级架构师郭援非:分布式数据库是金融机构数字化转型的最佳路径...
  7. JavaScript 文件拖拽上传插件 dropzone.js 介绍
  8. Python使用标准库itertools中count类求解数苹果问题
  9. 人名和成绩一起排序_excel中怎么让人名和他的成绩一起排序
  10. webex无法用计算机呼叫,WebEx使用指南.PDF
  11. Dell电脑重装系统
  12. 用户画像中常用的用户模型
  13. Python爬取豆瓣top250书籍(beautifulsoup法)
  14. 圣诞使用循环打印以下圣诞树:要求输入树的高度,打印树
  15. Java设计模式第一章(软件设计原则)(学习笔记)
  16. VMware虚拟机使用虚拟机网络编辑器NAT模式配置网络图文教程,实现联网功能并测试
  17. excel服务器项目管理软件,用excel做项目管理系统
  18. 线搜索中的Armijo-Goldstein准则及Wolfe-Powell准则
  19. 【包你说】红包怎么玩,由你说了算!
  20. 数论概论 第五章 习题解答(上)(宋二娃的BLOG)

热门文章

  1. python的优点-python的功能与优缺点
  2. python数据分析的主要流程-python数据挖掘的基本流程有哪些?
  3. python批量下载文件-python 从远程批量下载文件到本地
  4. python有道词典-Python爬取有道词典
  5. python语言必背代码-Python新手必须知道的25条知识点
  6. python if语句多个条件-关于函数:如何在python中为一个if语句提供多个条件
  7. python教学网站-python学习网站整理
  8. python入门到实践-看完Python从入门到实践后该看什么书?
  9. python资料百度云-Java+Python+前端 学习资料大全 百度云盘
  10. MapStruct在Eclipse中的使用