C++ 系统错误124-错误\u SHFileOperation的无效\u级别

C++ 系统错误124-错误\u SHFileOperation的无效\u级别,c++,windows,C++,Windows,我在使用SHFileOperation时遇到问题:。我得到了工作,但我现在正试图把它放入一个函数,因为它将在我的代码中使用多次。其功能是: void SHFileOperationFunc(string item1, string item2, int operation) { SHFILEOPSTRUCT sf; memset(&sf,0,sizeof(sf)); sf.hwnd = 0; sf.fFlags = FOF_NOCONFIRMATION |

我在使用
SHFileOperation
时遇到问题:。我得到了工作,但我现在正试图把它放入一个函数,因为它将在我的代码中使用多次。其功能是:

void SHFileOperationFunc(string item1, string item2, int operation)
{
    SHFILEOPSTRUCT sf;
    memset(&sf,0,sizeof(sf));
    sf.hwnd = 0;
    sf.fFlags = FOF_NOCONFIRMATION | FOF_NOCONFIRMMKDIR | FOF_NOERRORUI;

    switch(operation)
    {
    case 1:

    case 2:
        sf.wFunc = FO_COPY;
        string files = item1 + "\\*.*";
        files.append(1, '\0');
        sf.pFrom = files.c_str();
        item2.append(1, '\0');
        sf.pTo = item2.c_str();
    }

    int opOkay = SHFileOperation(&sf);
    if(opOkay != 0)
    {
        //FAIL
    }
}

当我把代码放在函数之外时,它工作得很好。但现在它是如上所述,我得到一个错误返回到opOkay。错误值为124,表示错误级别无效-系统调用级别不正确。我不知道这是什么意思。谷歌也帮不了多少忙。有人能启发我吗

我到底应该使用
SHFileOperation
,还是应该使用
IFileOperation


干杯。

问题在于,当开关块结束时,
文件将超出范围,
sf.pFrom
将是一个悬空指针。将
文件的声明移动到
开关的外部


请注意,
switch
块中没有
break
s。

sooo应该已经看到了。感谢错误代码124=0x7c=。@RaymondChen,这是我的困惑。你能把这个作为回答吗?