如何在QT中写C函数?

我这有个自定义函数,是扫描/home目录下所有文件,并把文件名写进一个叫“NAME”文件中,函数名为“serach()”请问,怎么把这个函数添加到qt图形界面程序中?
serach()函数是在,a.c文件中,我用gcc 编译运行,一切正常。然后我在qt程序中,文件--新建-C++类,然后把头文件#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
#include <unistd.h>
#include <stdlib.h>
#include <fcntl.h>
用到的东西包含进去。
然后实现是这样的
serach::serach()
{
char suffix[30];
char *p;int i=0;
DIR *dir;
int dir_file;
dir =opendir("/home/linux/9day/c_file");
struct dirent *d;
if((dir_file=open("NAME",O_WRONLY|O_CREAT,777)) < 0)
{
printf("can't open file\n");
return 0;
}

while( (d = readdir(dir) ) )
{
p=d->d_name;
strcpy(suffix,p);
strcat(suffix,"\r\n");
printf("%s",suffix);
write(dir_file,suffix,strlen(suffix));
}
close(dir_file);

}
嗨。。。。。。。。报错啦!!!
请问怎么办啊,我就是想添加这个自定义函数进去啊

如果你实在想用qt又要用c/c++标准库,那么 qt for vs 倒是一个不错的选择,可惜貌似你在Linux使用的。程序编译出错,很有可能是因为找不到你用到某些函数的头/库文件。
不过你既然都用到qt了,建议还是用qt提供的一整套机制来实现你的程序,对于你问题中提到的需求,可以有下面的解决方式:
用QDir类可以实现对所有目录/文件的遍历操作,
用QFile/QTextStream可以实现对文件读写的操作等。
qt提供的接口都很友好,你稍微看一下qt的帮助文档就知道应该怎么用了。不过如果你是想把一个C语言做的项目用qt重做的话,那就当我什么都没有说了~
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-06
看来你是在linux或者mac或者手机上在开发QT应用,首先要注意的是你写的是c函数,而Qt是C++框架,这是两种不同的语言,所以注意使用extern “C”{……},再一个在linux类系统下开发Qt时有时也会因为头文件顺序报错,你可以调整一下头文件顺序,然后再编译。
最后提一点小建议,些类除错问题最后在提问时附上错误码和错误提示,这样可能会有更多的人给你更好的答案。
第2个回答  2011-04-13
头文件,源文件,还有主程序。这三个都要相关定义的,你写的不不很清晰,不好解释。
相似回答