windows DLL动态连接库文件的实现和应用

来源:互联网 发布:手机淘宝货到付款骗局 编辑:程序博客网 时间:2024/05/29 08:27

windows DLL动态连接库文件的实现和应用

动态连接库文件即dll文件(windows下,linux下为.so文件),里面其实为已经实现的函数库,可以随时导入为多个程序同时使用。它实现时就被编译了,所以它实质是一种不可执行的二进制文件 。利用它有助于共享内存,提高内存的执行效率 , 而且dll也使程序模块化,这也是虚拟内存实现的前提。

vc++6.0提供了两种模式的dll文件的编写,一种是MFC的dll,一种是win32的dll.对于MFC的dll稍微复杂,本人不会。这儿就简单的说说怎么写win32 的dll和如何导出并加载到自己的程序中。

过程:
1.如何编写win32 的动态链接库文件

其实代码就和编写c语言的一样,头文件申明,.c文件实现。不同的是,dll不需要我们编写程序的入口,即main函数,因为编译器已经为我们实现了。所以也就像我们在自己的头文件和.c文件增添一个函数。
例如:判断两个整形的大小的函数(谁都会写):
头文件:
添加这句:extern “C”_declspec(dllexport) int Max(int a , int b);
这句中关键字:_declspec()即函数引出规范,即导出自己编写的dll文件后边声明的函数。后边写上自己声明的函数。
这里写图片描述

编译之后就去自己的工程目录下的Debug下找到以下三个文件:
以我的Mydll2为例子:
Mydll2.dll,Mydll2.lib , Mydll2.h这三个文件。有了这三个文件,你才能使用动态链接库里面的函数。
一个是引入库(.lib)文件,一个是dll文件,引入库文件包含被DLL导出的函数的名称和位置,DLL包含实际的函数和数据!
lib文件是应用程序编译时用到,dll里面是实现,是在程序运行时运用。

2.使用生成的三个文件

(1)将.h和.lib文件加到vc的头文件库和资源库
如果你不想移动这两个文件,那么就打开vc菜单栏Tools/options/dirctories(路径)下将你的头文件和.lib绝对目录添加进去就可以了。
当然,你如果觉得麻烦,就直接去找到你的vc编译环境的include文件夹和lib文件夹,将你的文件放进去就可以了。
(2)第四部就是在你的程序中添加这样一句,也就是加载你的动态链接库文件,这样你终于可以用里面的函数,就不用自己写了。所以发现动态链接库真的非常方便。

pragma comment(lib , “你的lib文件”)

如下我的代码,用到了我刚才写的dll文件中的函数.

这里写图片描述

结果:
这里写图片描述

0 0
原创粉丝点击