vc6.0怎么建立自己的函数库呢?
我们知道,当我们包含头文件比如是stdio.h,那么我们就可以使用库函数,比如是printf();假如我现在有3个文件hello.h,hello.c和main.c,代码如...
我们知道,当我们包含头文件比如是stdio.h,那么我们就可以使用库函数,比如是printf();假如我现在有3个文件hello.h,hello.c和main.c,代码如下:
hello.h:
extern void out();
hello.c
#include<stdio.h>
void out(){
printf("hello.");
}
main.c
#include"hello.h"
int main(void){
out();
return 0;
}
显然hello.c和main.c都是可以编译通过,但是连接main.c的时候会出现一个连接错误:
Linking...
main.obj : error LNK2001: unresolved external symbol _out
Debug/main.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.
这是因为连接的时候只会对main.c的main.obj连接,而没有将hello.obj连接,所以会找不到函数out();那么我要用到我建立的函数out();应该怎么做呢?我想建立属于自己的函数库应该怎么做呢?
可能有人会叫我把hello.c通过#include包含进main.c里面去。或者叫我把3个文件放到一个工程里面,但是我现在的问题是不实现这些操作就可以用到我的函数,就好像系统的库函数一样,希望大家能解答一下我问题,在线等,谢谢.. 展开
hello.h:
extern void out();
hello.c
#include<stdio.h>
void out(){
printf("hello.");
}
main.c
#include"hello.h"
int main(void){
out();
return 0;
}
显然hello.c和main.c都是可以编译通过,但是连接main.c的时候会出现一个连接错误:
Linking...
main.obj : error LNK2001: unresolved external symbol _out
Debug/main.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.
这是因为连接的时候只会对main.c的main.obj连接,而没有将hello.obj连接,所以会找不到函数out();那么我要用到我建立的函数out();应该怎么做呢?我想建立属于自己的函数库应该怎么做呢?
可能有人会叫我把hello.c通过#include包含进main.c里面去。或者叫我把3个文件放到一个工程里面,但是我现在的问题是不实现这些操作就可以用到我的函数,就好像系统的库函数一样,希望大家能解答一下我问题,在线等,谢谢.. 展开
3个回答
展开全部
将hello.h和 hello.c 编译成动态库或者静态库得到*.lib 、*.dll
在链接main.obj时加入*.lib
在链接main.obj时加入*.lib
追问
那请问要怎么编译成动态库或者静态库呢?vc6.0有这个功能吗?可以具体一点吗?
追答
好多书都有例子
这个微博:http://blog.sina.com.cn/s/blog_86d10dc70101dbiz.html
展开全部
hello.h
void out();
hello.c
#include "hello.h"
#include <stdio.h>
void out()
{
printf("Hello");
}
main.c
#include "hello.h"
void main(){
out();
}
void out();
hello.c
#include "hello.h"
#include <stdio.h>
void out()
{
printf("Hello");
}
main.c
#include "hello.h"
void main(){
out();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建一个头文件*.h,进行函数声明
建同名*.cpp,函数实现。
库建好了,你想用函数库的函数的时候包含头文件。
建同名*.cpp,函数实现。
库建好了,你想用函数库的函数的时候包含头文件。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询