帮忙看看这道C语言编程题

来源:百度知道 编辑:UC知道 时间:2024/06/27 08:06:21
#include "windows.h"
#include "winnt.h"
#include "stdio.h"
#include "assert.h"
#include "string.h"
int static m=0;
IMAGE_DOS_HEADER DosHeader;
IMAGE_NT_HEADERS NtHeader;
IMAGE_SECTION_HEADER SectionHeader;
IMAGE_SECTION_HEADER newSectionHeader;

int ifpe(char *t)
{FILE *p;
if((p=fopen(t,"rb+"))==NULL)
printf("open file failed");
rewind(p);
fread(&DosHeader,sizeof(IMAGE_DOS_HEADER),1,p);
if(DosHeader.e_magic!=IMAGE_DOS_SIGNATURE)
{printf("Not a MZ file:%s\n",t);
return 0;}
fseek(p,DosHeader.e_lfanew,0);
fread(&NtHeader,sizeof(IMAGE_NT_HEADERS),1,p);
if(NtHeader.Signature==IMAGE_NT_SIGNATURE)
{printf("PE file:%s\n",t);
return 1;}
else
{puts("Not a PE file");
return 0;}
fclose(p);
}

void findfile(char *cpath)
{
WIN3

这个应该是输出路径的把不过在cpath已经带有\这个不是出错的原因,不过h=ifpe(pe); pe是个空值,如果你想把路径给pe可以用sprintf(pe,"%s%s",cpath,fd.cFileName);,而if((p=fopen(t,"rb+"))==NULL) ,这个条件也无效的 fread的时候会出错。接下来的你自己看把。

printf("\n当前文件总数是:%d\n",m);

m哪来的啊

m是全局静态变量啊。。。
觉得是不是指针数组P的问题啊。C:\\能打开什么目录吗?是不是C:\啊