下面这篇文章是从网上找的,主要讲述了静态链接库和动态链接库。
参考1:VC++动态链接库(DLL)编程深入浅出(一)
http://www.pconline.com.cn/pcedu/empolder/gj/vc/0509/698632.html
参考2:VC++动态链接库(DLL)编程深入浅出(二)
http://pcedu.pconline.com.cn/empolder/gj/vc/0509/699672_all.html#content_page_1
参考3;VC++动态链接库(DLL)编程深入浅出(三)
http://www.pconline.com.cn/pcedu/empolder/gj/vc/0509/703607.html
参考4;VC++动态链接库(DLL)编程深入浅出(四)
http://pcedu.pconline.com.cn/empolder/gj/vc/0511/720057_all.html#content_page_1
静态链接库( lib ):
1,打开VC6.0,new projects-->win32 static library,新建一个静态链接库的项目。方法在参考一中已经很详细,这里需要补充的是:
在libTest工程所在的工作区内new一个libCall工程。libCall工程仅包含一个main.cpp文件的方法是:在File View中,右键Workspace(而不是project)-->Add new project to worksapce :wine32 console application:名称为libCall。然后再在libCall的project中添加main.cpp文件。
需要说明的是:如果直接在当前 libTest project中直接添加main.c文件那么运行main.c不会得到输出,因为这个静态链接库的project不能直接运行。
2,下面的两条语句中,.. 类似于linux下的命令代表上一级目录。下一级目录用\\
#include "..\\lib.h"b //main.cpp目录的上一级目录的lib.h文件
#pragma comment(lib,"..\\debug\\libTest.lib")//指定与静态库一起连接
动态链接库(dll):
方法参照参考二看,这里还是要提醒一次, 现在的一个WorkSpace里包含的不再是一个project,而是多个,当我们编译完main.cpp后,运行会看到程序并没有执行lib.cpp里的函数,再到project目录下的debug文件夹内查看,发现并没有生成 .dll文件。这里的问题是:
我们编译链接的是main.cpp所在的dllCall project,而dllTest project并没有被编译,所以没有产生所需要的dll文件。这时要在Build工具框中选择dllTest 然后再编译,此时在提示信息中可以看到已经生成了dllTest.dll文件。