帮忙看下这个windows程序错在哪里

来源:百度知道 编辑:UC知道 时间:2024/06/24 16:28:04
int get_prog_list(char *path,struct str_prog_inf *pglist,int *num)
{
int i=0;
*num=0;

WIN32_FIND_DATA fd;

HANDLE hFind;

hFind=FindFirstFile(TEXT("*.*"),&fd);

if(hFind!=INVALID_HANDLE_VALUE)
{
if(!(fd.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY))

{
if (fd.cFileName[0]=='o'||fd.cFileName[0]=='O')
{ do{
【1】 strcpy(pglist[i].prog_name,fd.cFileName); pglist[i].prog_size=fd.nFileSizeLow; 【2】 pglist[i].prog_mtime=fd.ftLastAccessTime;
i++;
}while(FindNextFile(hFind,&fd));
}
}
*num=i;
FindClose(hFind);
return 1;
}
}

两处报错,在程序中标出...多谢哪位高手帮我改下...
【1】error C2664: “strcpy”: 不能将参数 2 从“WCHAR [260]”转换为“const char *”
【2】error C2440: “=”: 无法从“FILETIME”转换为“long”
问题【2】我自己解决了,问题【1】我改成wcscpy还是报那个错,是不是语意写的有点问题啊,大侠帮我看下了

(1)用 wcscpy 代替 strcpy

(2)FILETIME 是结构:
typedef struct _FILETIME { // ft
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME;

dwLowDateTime -- 低位 32 bits Win32 date/time
dwHighDateTime -- 高位 32 bits Win32 date/time
无法转换为“long”

第一个问题,在工程的属性里有的字符集,你在里面选择多字节字符集