资源描述
几年没用vc写代码了。偶尔发现之前整理的一些知识点,删除吧又觉得可惜,就拿出来与大家分享下!若发现有神马错误的地方,请留言,不胜感激!
邮箱: yuewguo@
环境:windows
工具:vc++6.0
静态库
静态库是后缀名为.lib的文件。
1、 创建静态库
第一步:新建工程”Win32 Static Library”, 名字为test
第二步:新建文件,添加头文件test.h和源文件test.c(勾选Add to project)
第三布:在test.h文件中输入函数的外部声明。例如:
extern "C" FuctionName(arguments1,....);
第四步:在test.c文件中输入:#include “test.h”,并实现函数
第五步:按F7编译即在Debug或Release目录下可生成静态链接库(.lib)。
2、 使用静态库
首先必须包含静态库的头文件 #include “xxx.h” 。
静态库的链接方式有两种:
第一种方式:在代码开头写 #pragma comment (lib, “xxx.lib")
第二种方式:菜单Project->Setting...->Link
Object/library modules:添加.lib
3、 调试静态库
静态不能独立运行,因此调试也必须有测试程序。
第一种:单独调试静态库设置方法
1)菜单Project->Settings...->Debug(Table项)
Executable for debug session:选择测试程序->ok !
2)设置断点(F5),和调试win32程序一样
第二种:测试程序和静态库一起调试
1)如果测试程序和库在同一工程下,在库源文件直接设置断点即可调试
2)如果不在同一工程下,则需要将两个工程都打开,在库工程中进行配置,设置断点即可。(配置方法:Project->Settings...->Debug(Table项)Executable for debug session:测试程序)
动态库
动态库是后缀名为.dll的文件。
1、 创建动态库
第一步:新建工程”Win32 Dynamic-Link Library”,名字为test
第二步:新建文件,添加头文件test.h和源文件test.c(勾选Add to project)
第三步:在test.h中写库接口列表。例如:
extern "C" int __declspec(dllexport) FuctionName(arguments);
其中,__declspec(dllexport)声明函数为DLL的导出函数
第四步:在test.c文件中引入test.h,并实现函数。(注意:动态库的主函数为dllMain,是自动调用的,如果没有系统将调用缺省的)
第五步:按F7编译,即可在Debug或Release目录下生成动态链接库。
2、 使用动态库
第一步:首先必须包含静态库的头文件 #include “xxx.h”
第二步:在代码中进行动态引用,步骤如下:
hDll = LoadLibrary(".dll"); //载入dll,全路径
GetProcAddress(hDll, FileName); //
.........
Free(hDll);
3、 调试静态库
动态库的调试方法同静态库相同
4、 动态库注意事项
1、 全局变量生命周期是整个进程运行过程,因此慎用。
2、C++编译器编译源代码时会对函数进行重命名。避免函数重新命名的两种方法有2种:在函数前加extern "C" 或 在.def文件中声明导出函数名
展开阅读全文