0x00 关于LONGLONG
下面展示一些 内联代码片
。
FILETIME timet2filetime(const lutime_t t)
{
LONGLONG i = Int32x32To64(t,10000000) + 116444736000000000LL;
FILETIME ft;
ft.dwLowDateTime = (DWORD) i;
ft.dwHighDateTime = (DWORD)(i >>32);
return ft;
}
报错 error C2059: syntax error : ‘bad suffix on number’
只要将 LONGLONG i = Int32x32To64(t,10000000) + 116444736000000000LL中的LL改成一个L,即LONGLONG i = Int32x32To64(t,10000000) + 116444736000000000L;
改完后,在vc6.0中不报错了。
0x01 带密码解压缩,文件少12字节
这个问题,网上已经有答案了,这里直接引用下吧。
if (uDoEncHead>0)
{
char bufcrc=pfile_in_zip_read_info->stream.next_in[uDoEncHead-1];
// pfile_in_zip_read_info->rest_read_uncompressed-=uDoEncHead;
pfile_in_zip_read_info->stream.avail_in -= uDoEncHead;
pfile_in_zip_read_info->stream.next_in += uDoEncHead;
pfile_in_zip_read_info->encheadleft -= uDoEncHead;
if (pfile_in_zip_read_info->encheadleft==0)
{
if (bufcrc!=pfile_in_zip_read_info->crcenctest)
return UNZ_PASSWORD;
}
}