一个关于创建C语言函数库的问题?

各位大侠,小弟想创建一个自己的C语言函数库。像包含了stdio.h头文件后,就可以使用printf()函数一样,小弟想把自己的函数封装起来,通过头文件包含的工程中,请大侠指教,如何实现?

静态链接库(Static Libary)

用VS2008做一个静态链接库先

打开VS2008,选择控制台应用程序,下一步里面选择lib

新建static_lib.h 和static_lib.cpp 两个文件,这两个文件的内容如下:

 

static_lib.h:
int add(int x,int y);
int substract(int x , int y);
 
static_lib.cpp:
#include "static_lib.h"
int add(int x,int y)
{
       return x + y;
}
int substract(int x,int y)
{
       return x - y;
}
后编译,生成解决方案,好,这样不出意外会在debug文件夹(与staticCai并列)下生成一个工程名.lib文件,好了,这个就是我们做好的静态链接库。下面,我们看看怎么用这个静态链接库。我们再新建一个win32控制台程序,新建main.cpp内容如下:
#include <iostream>
#include "static_lib.h"
#pragma comment(lib, "static.lib")
using namespace std ;
 
int main()
{
       cout << add(3 ,4) << endl ;
       cout << substract(5 , 3) << endl ;
       return 0 ;
}

并且将 工程名.lib和static_lib.h这两个文件拷贝到与main.cpp并列的文件夹下。然后,我们编译,链接,执行程序,就会出结果了

#pragma comment(lib, "static.lib")这句和我们在 项目->属性->连接器->附加库目录 的效果是一样的。至此,怎么做静态链接库以及怎么用静态链接库就搞定了。现在,我们把刚刚拷贝过来的.lib给删了,我们发现,程序照样执行,但是不能再链接了。所以,我们得出这样的结论:我们再链接的时候需要静态链接库,一旦链接成功,生成了可执行文件,那么,静态链接库就不再需要了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-04-15
头文件里面写声明,c文件中写函数体实现。
相似回答
大家正在搜