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,这是我的困惑。你能把这个作为回答吗?