首页  >   经验  >   大熊数据库Demo之动态链接库那些事儿

大熊数据库Demo之动态链接库那些事儿

查看 Thvoifar 的博客 2015-06-26 13:28:59 1179
大熊   数据库  
手机阅读 | 转发赚积分
手机收藏 | 分享给好友
简介接上篇《大熊数据库Demo之构建过程》,主要探讨动态链接库中如何封装,以及头文件的编写、函数如何导出、MFC对话框程序如何调用动态链接库中的函数等问题
    接上篇《大熊数据库Demo之构建过程》。
    在使用动态连接库时,往往提供两个文件:一个引入库(.lib)文件和一个DLL(.dll)文件,其引入库文件(.dll)包含该DLL导出的函数和变量的符号名,而.dll文件包含该DLL实际的函数和数据。编译时只需要该DLL的引入库文件,该DLL中的函数代码并不复制到可执行文件中,直到可执行程序运行时,才去加载所需的DLL,将该DLL映射到进程的地址空间中,然后访问DLL中导出的函数。在发布产品时,除了发布可执行文件以外,同时还要发布该程序将要调用的动态连接库。
    动态链接库的加载方式分为隐式链接和显示加载。本文以Demo为例,就只谈隐式链接方式,想了解显示加载方式如何使用请参考孙鑫《VC++深入详解》。
    应用程序如果想要访问某个DLL中的函数,那么该函数必须是应经被导出的函数。查看dll文件中有哪些导出函数,可以利用Visual Studio提供的命令工具Dumpbin来实现。
    命令格式:
dumpbin –exports ***.dll 
    要导出函数,则需要在将要被导出的函数前面添加标识符:
_declspec(dllexpot)。
     比如动态链接库项目名为dxDb,在动态链接库中这样写: 
_declspec int add(int a, int b); 
     这样函数add就被导出了,编译后将生成一个dxDb.lib库文件和一个dxDb.dll文件。在调用该dll库的add函数时,就需要在使用add函数之前对其做一个声明如下: 
1.微信扫码
2.点击按钮,粘贴命令
自动刷新 手动刷新
命令:rd 1PET4i 复制
提示:如果您发送了命令,自动刷新会展开全文。自动刷新最多60秒,超过60秒请点击手动刷新。
创作不易,汗水不止!为防止劳动果实被爬虫窃取,开启了反爬机制,需要您发送命令继续阅读。取关会再次出现此提示。一段时间后出现此提示,请再次发送即可。如有问题,请加客服微信Freeme007处理。感谢您的理解。
标注
评论
站内搜
百度搜
传送到手机
手机扫码,识别文字,完成传送x
加载中...
标注内容x
加载中...
添加标注x
文章标题:大熊数据库Demo之动态链接库那些事儿
文章地址:http://www.cjjjs.com/article/6262015592813889
转载到个人博客,请在文末带上右侧内容(含超链接):本文转载自:大熊数据库Demo之动态链接库那些事儿
收藏 0 点赞 0
公众号
微信赞赏
支付宝赞赏
领支付宝大红包
QQ群

相关阅读

  1. 经验分享:mysql数据库查询缓存引发的问题 查找全网同类文章
  2. 数据库数据迁移:将一个连接的数据库的表导入到另一个连接数据库表 查找全网同类文章
  3. 你一直想要的数据库优化之数据表设计规范 查找全网同类文章
  4. [Win32] 如何能够实现通用数据库操作方法 查找全网同类文章
  5. mysql数据库30个权限的分类说明 查找全网同类文章
  6. 数据库编程疑惑全面解答:8 本地数据库和远程数据库的区别对比分析图解 查找全网同类文章
  7. 最简单的C++操作mysql数据库的基础类库源码和示例 查找全网同类文章
  8. mysql数据库服务无法启动解决方法全面分析 查找全网同类文章
  9. 数据库中SQL身份验证登录方式修改登录密码注意事项 查找全网同类文章
  10. MFC 操作数据库问题 如何条件判断 查找全网同类文章
分享到:
分享文章[大熊数据库Demo之动态链接库那些事儿]到QQ空间

相关阅读

猜您感兴趣