在vc ++中关闭文件时出错

时间:2011-11-24 08:24:24

标签: visual-c++

我有一个功能,可以将文件从我的系统加密并上传到服务器。在我尝试关闭时上传文件后,出现错误。错误代码是12030.我的代码的上传部分如下所示。该代码在关闭文件时产生错误的问题是什么。

CFile   fp;
UINT uNoOfBytes;
UINT uNoOfEncBytes;
bool bIsFinalBlock = false;
BYTE*   pBuf = NULL;
HINTERNET m_hRequest;


if(!fp.Open(szFilePath, CFile::modeRead | CFile::shareDenyNone, &err))
{
    AfxThrowFileException(err.m_cause, err.m_lOsError, err.m_strFileName);
}

do
{
    uNoOfBytes = fp.Read( pBuffer, DATA_CHUNK_SIZE );

    if( uNoOfBytes < DATA_CHUNK_SIZE )
    {
        bIsFinalBlock = true;               
    }

    uNoOfEncBytes = aes.Encrypt(pBuffer,(int)uNoOfBytes, bIsFinalBlock);

    if (!(bRet=InternetWriteFile( m_hRequest, (BYTE*)pBuffer, uNoOfEncBytes,NULL)))
    {
        DWORD dw = GetLastError();
        break;
    }

    if(bIsFinalBlock)
        break;

    }while ( uNoOfBytes != 0 ) ;

fp.Close();

1 个答案:

答案 0 :(得分:1)

根据MSDN

“与服务器的连接已重置或终止,或遇到不兼容的SSL协议。例如,WinHTTP版本5.1不支持SSL2,除非客户端专门启用它。”

无论如何,我没有看到你在哪里初始化m_hRequest。阅读this,应该使用任一函数初始化HINTERNET。