gpt4 book ai didi

c++ - 系统错误 124 - ERROR_INVALID_LEVEL with SHFileOperation

转载 作者:可可西里 更新时间:2023-11-01 09:25:52 24 4
gpt4 key购买 nike

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

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 - 系统调用级别不正确。我不知道这是什么意思。谷歌也没有太大帮助。有大佬解惑吗?

另外,我应该使用 SHFileOperation 还是应该使用 IFileOperation

干杯。

最佳答案

问题是 files 将在 switch block 结束时超出范围,并且 sf.pFrom 将成为悬空指针。将 files 的声明移到 switch 之外。

请注意,您在任何一个 switch block 中都没有 break

关于c++ - 系统错误 124 - ERROR_INVALID_LEVEL with SHFileOperation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9192989/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com