系统错误124 – 带有SHFileOperation的ERROR_INVALID_LEVEL

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

 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,这意味着ERROR_INVALID_LEVEL – 系统调用级别不正确。 我不知道这是什么意思。 Google也没有太多的帮助。 有人开导我吗?

另外我应该使用SHFileOperation或者我应该使用IFileOperation

干杯。

Solutions Collecting From Web of "系统错误124 – 带有SHFileOperation的ERROR_INVALID_LEVEL"