我正在尝试制作一个仅在根文件夹中搜索任何文件的测试程序:
#include <stdio.h>
#include <dir.h>
#include <dos.h>
struct ffblk ffblk;
int main(){
int result = findfirst("*.*", &ffblk,FA_ARCH);
return 0;
}
但是当代码编译时,
ffblk
struct
声明返回错误:然后
findfirst()
函数返回:as seen in this image,即使
findfirst
和ffblk
都是dir.h
的成员,Visual Studio
都已包括在内。我正在使用GCC
并使用ojit_code进行编译。有人知道代码或头文件出了什么问题吗? 最佳答案
如果真的可以避免的话,您真的不应该使用过时的 header (例如“dos.h”)中的过时的API。诚实!
不过,如果您坚持要...
_findfirst
(不是findfirst
)。 struct _finddata_t *fileinfo
(不是struct ffblk
)。 更改您的代码,所有内容都应编译并运行。
更好的方法是,更改 header (分别为“io.h”和“dir.h”),并且原始代码应该可以编译并运行。