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

1290 人浏览 | 时间: 2015-06-26 13:28:59 | 作者: Thvoifar
    接上篇《大熊数据库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函数之前对其做一个声明如下: 
请微信扫码阅读。
为防止恶意爬虫,
已开启反爬机制,
理解哟~~~~
标注
评论
站内搜
百度搜
传送到手机
手机扫码,识别文字,完成传送x
加载中...
标注内容x
加载中...
添加标注x
收藏 0 点赞 0

相关阅读