BOOL CAutoUpdate::DownloadFile(HINTERNET hSession, LPCTSTR localFile)
{
HANDLE hFile;
BYTE pBuf[TRANSFER_SIZE]; //TRANSFER_SIZE=4096
DWORD dwReadSizeOut=0;
DWORD dwTotalReadSize = 0; hFile = CreateFile(localFile, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile == INVALID_HANDLE_VALUE) return FALSE;
DWORD dwNumWritten;
do
{
BOOL bRead = InternetReadFile(hSession, pBuf, sizeof(pBuf), &dwReadSizeOut);
if (bRead&& dwReadSizeOut > 0 ) 
{
WriteFile(hFile, pBuf, dwReadSizeOut, &dwNumWritten, NULL); 
// File write error
if (dwReadSizeOut != dwNumWritten)
{
CloseHandle(hFile);
return FALSE;
}
}
else {

if (!bRead)
{
// Error
CloseHandle(hFile);
return FALSE;
}
break;
}
} while(!dwReadSizeOut); CloseHandle(hFile);
return TRUE;
}从FTP上下载文件,下载的结果是比源文件下,不知道怎么回事.如果这函数没错,那问题可能回出在什么地方?在调用该函数前的登陆函数是
HINTERNET CAutoUpdate::LoginFtp()
{ HINTERNET m_Hsession=InternetOpen(AfxGetAppName(), INTERNET_OPEN_TYPE_PRECONFIG , 
NULL, NULL, 0 );
HINTERNET m_connect =InternetConnect(m_Hsession,_T("202.200.20.200"),INTERNET_DEFAULT_FTP_PORT,_T("123"),_T("123"),
INTERNET_SERVICE_FTP,INTERNET_FLAG_PASSIVE/*0*/,NULL);
HINTERNET rehconncte=FtpOpenFile(m_connect,_T("downloadfile.exe"),GENERIC_READ ,
FTP_TRANSFER_TYPE_BINARY | INTERNET_FLAG_TRANSFER_BINARY,0); return rehconncte;
}