Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual c++ 试图在运行时添加时删除资源_Visual C++_Mfc_Resources - Fatal编程技术网

Visual c++ 试图在运行时添加时删除资源

Visual c++ 试图在运行时添加时删除资源,visual-c++,mfc,resources,Visual C++,Mfc,Resources,当我试图在运行时将资源添加到另一个文件时,会删除一些以前的资源。请在下面查找源代码: void CResourceIncludeSampleDlg::OnBnClickedButton1() { CString strInputFile = _T("C:\\SampleData\\FileToInsert.zip"); // This File is 100 MB HANDLE hFile = CreateFile(strInputFile, GENERIC_R

当我试图在运行时将资源添加到另一个文件时,会删除一些以前的资源。请在下面查找源代码:

    void CResourceIncludeSampleDlg::OnBnClickedButton1()
{


    CString strInputFile = _T("C:\\SampleData\\FileToInsert.zip"); // This File is 100 MB

    HANDLE hFile   = CreateFile(strInputFile, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
    DWORD FileSize = GetFileSize(hFile, NULL);

    BYTE *pBuffer = new BYTE[FileSize];
    DWORD dwBytesRead;
    ReadFile(hFile, pBuffer, FileSize, &dwBytesRead, NULL);

    for (int iIndex = 1; iIndex <= 4; iIndex++)
    {
        InsertResource(FileSize, iIndex, pBuffer);
    }

    CloseHandle(hFile);
}

void CResourceIncludeSampleDlg::InsertResource(DWORD FileSize, int iIndex, BYTE *pBuffer)
{
    CString strOutputFile = _T("C:\\SampleData\\ResourceIncludeSample_Source.exe");
    int iResourceID = 300 + iIndex;

    HANDLE hResource = BeginUpdateResource(strOutputFile, FALSE);
    if (INVALID_HANDLE_VALUE != hResource)
    {
        if (UpdateResource(hResource, _T("VIDEOBIN"), MAKEINTRESOURCE(iResourceID), MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US),
                           (LPVOID)pBuffer, FileSize) == TRUE)
        {
            EndUpdateResource(hResource, FALSE);
        }
    }
}
在完成执行之后,我希望在VIDEOBIN类别下添加301、302、303和304作为输出。但目前只有2到3个资源。始终删除一个资源

你能告诉我什么地方出了问题或者有什么补救办法吗? 非常感谢任何帮助或示例源代码

感谢和问候, YKK Reddy

关闭文件后需要删除[]pBuffer。它应该是RT_RCDATA而不是_TVIDEOBIN,尽管自定义资源名称可能不是此特定问题的原因