动态链接库(一)

1.新建文件夹,命名lpt

2.用vc6.0建立一个空工程(Win 32 Dynamic-Link Library),名称:lptDll1

3.新建C++文件,命名:lptDll1;新建.h文件,命名:lptDll1.;新建在工程内新建文本文件,命名:lptDll1.def(注意.def后缀一定要写在名称内)

4.lptDll1.h的代码:

 

1 void lptDllTest1();
2 void lptDllTest2();

 

5.lptDll1.cpp的代码:

 1 #include<iostream.h>
 2 #include "lptDll1.h"
 3 
 4 void lptDllTest1()
 5 {
 6     cout<<"这是我第一个测试Dll静态加载函数!"<<endl;
 7 }
 8 
 9 void lptDllTest2()
10 {
11     cout<<"这是我第二个测试Dll静态加载函数!"<<endl;
12 }

 

6.lptDll1.def的代码:

1 LIBRARY lptDll1
2 EXPORTS
3     lptDllTest1    @1  //@1是序号  //lptDllTest1是函数
4     lptDllTest2    @2

 

7.编译——执行

 

点击“取消”

8.新建另一个工程(Win 32 Console Application),名称:lppDll1Test。新建C++文件,命名:lptDll1Test

lptDll1Test代码如下:

1 #include"lptDll1.h"
2 void main()
3 {
4     lptDllTest1();
5     lptDllTest2();
6 }

 

当点击编译发现该库未导入当然不可行

 

9.找到lptDll1文件夹的子目录中的刚刚执行完毕的debug文件内把lptDll1.lib以及lptDll1.dll复制到lptDll1Test的目录下;同样地,lptDll1文件夹中的lptDll1.h也复制到lptDll1Test的目录下

再次编译,此时会提示找不到这两个函数

 

10.该库仍然未成功导入,那该如何呢?

找到“工程”—“设置”—“链接/link”,在对象/库模块添加lptDll1.dll动态链接库

再次编译,成功。调用这两个函数,并输出:

这是我第一个测试Dll静态加载函数!
这是我第二个测试Dll静态加载函数!
Press any key to continue