下面程序错在哪里?在XP下是能运行的,但eVC下就不行了!!
iCountNum = 0;
iDapSign = 1;
while(iDapSign)
{
if(iCountNum == 9)iDapSign = 0; if(!ResDisk()) //不存在F盘
{
iCountNum = iCountNum + 1;
printf("不存在F盘\n");
Sleep(200); //延时200ms
} else
{
iCountNum = iCountNum + 1;
printf("存在F盘,正在查找main\n");
ResFiles(); iDapSign = 0;
}
}
LoadPro();
//查找U盘,现在指定F盘
BOOL ResDisk(void)
{
HANDLE hDev = CreateFile("\\\\.\\F:",GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,
OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if(hDev != INVALID_HANDLE_VALUE)
{
CloseHandle(hDev);//存在这个分区
//CopyFile("F:\\ldkfjlskdfjs","C:\\slkdfjslkf",false);
return TRUE;
}
else
{
return FALSE;
}
}//查找文件夹main
BOOL ResFiles(void)
{
//char cDirPath[] = "F:\\main\\";
char cFromFileName[] = "F:\\main\0";
SHFILEOPSTRUCT FileOp; BOOL bDir = (!CreateDirectory("F:\\main\\", NULL)); if(bDir != 1)
{
printf("不存在main文件夹\n");
FileOp.fFlags = FOF_NOCONFIRMATION;
FileOp.hNameMappings = NULL;
FileOp.hwnd = NULL;
FileOp.lpszProgressTitle = NULL;
FileOp.pFrom = cFromFileName;
FileOp.pTo = NULL;
FileOp.wFunc = FO_DELETE;
//return SHFileOperation(&FileOp) == 0; int rval= SHFileOperation(&FileOp);
return FALSE;
} else
{
printf("存在main文件夹,正在拷贝\n");
CopyNewToDisk();
return TRUE;
}
}//拷贝U盘上的main文件夹,到硬盘上
void CopyNewToDisk(void)
{
char cFromFilePath[] = "F:\\main\0";
char cToFilePath[] = "D:\0";
int iOverSign; //拷贝成功的标志
SHFILEOPSTRUCT NewCopyDisk;
NewCopyDisk.fFlags = FOF_NOCONFIRMATION;
NewCopyDisk.hNameMappings = NULL;
NewCopyDisk.hwnd = NULL;
NewCopyDisk.lpszProgressTitle = NULL;
NewCopyDisk.pFrom = cFromFilePath;
NewCopyDisk.pTo = cToFilePath;
NewCopyDisk.wFunc = FO_COPY; iOverSign = SHFileOperation(&NewCopyDisk); if(iOverSign == 0) printf("拷贝成功\n");}void LoadPro()
{
}
iCountNum = 0;
iDapSign = 1;
while(iDapSign)
{
if(iCountNum == 9)iDapSign = 0; if(!ResDisk()) //不存在F盘
{
iCountNum = iCountNum + 1;
printf("不存在F盘\n");
Sleep(200); //延时200ms
} else
{
iCountNum = iCountNum + 1;
printf("存在F盘,正在查找main\n");
ResFiles(); iDapSign = 0;
}
}
LoadPro();
//查找U盘,现在指定F盘
BOOL ResDisk(void)
{
HANDLE hDev = CreateFile("\\\\.\\F:",GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,
OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if(hDev != INVALID_HANDLE_VALUE)
{
CloseHandle(hDev);//存在这个分区
//CopyFile("F:\\ldkfjlskdfjs","C:\\slkdfjslkf",false);
return TRUE;
}
else
{
return FALSE;
}
}//查找文件夹main
BOOL ResFiles(void)
{
//char cDirPath[] = "F:\\main\\";
char cFromFileName[] = "F:\\main\0";
SHFILEOPSTRUCT FileOp; BOOL bDir = (!CreateDirectory("F:\\main\\", NULL)); if(bDir != 1)
{
printf("不存在main文件夹\n");
FileOp.fFlags = FOF_NOCONFIRMATION;
FileOp.hNameMappings = NULL;
FileOp.hwnd = NULL;
FileOp.lpszProgressTitle = NULL;
FileOp.pFrom = cFromFileName;
FileOp.pTo = NULL;
FileOp.wFunc = FO_DELETE;
//return SHFileOperation(&FileOp) == 0; int rval= SHFileOperation(&FileOp);
return FALSE;
} else
{
printf("存在main文件夹,正在拷贝\n");
CopyNewToDisk();
return TRUE;
}
}//拷贝U盘上的main文件夹,到硬盘上
void CopyNewToDisk(void)
{
char cFromFilePath[] = "F:\\main\0";
char cToFilePath[] = "D:\0";
int iOverSign; //拷贝成功的标志
SHFILEOPSTRUCT NewCopyDisk;
NewCopyDisk.fFlags = FOF_NOCONFIRMATION;
NewCopyDisk.hNameMappings = NULL;
NewCopyDisk.hwnd = NULL;
NewCopyDisk.lpszProgressTitle = NULL;
NewCopyDisk.pFrom = cFromFilePath;
NewCopyDisk.pTo = cToFilePath;
NewCopyDisk.wFunc = FO_COPY; iOverSign = SHFileOperation(&NewCopyDisk); if(iOverSign == 0) printf("拷贝成功\n");}void LoadPro()
{
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货