- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在使用 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/
这个旧的 C++ 函数适用于 32 位操作系统,但不适用于 64 位操作系统。我想复制文件夹。你知道我必须改变什么吗? ************** Exception Text ******
我正在尝试使用 SHFileOperation 将文件从一个位置复制到另一个位置: SHFILEOPSTRUCT fileop; fileop.hwnd = 0; fileop.wFunc = FO_
我正在尝试将目录复制到新位置。所以我使用 SHFileOperation/SHFILEOPSTRUCT 如下: SHFILEOPSTRUCT sf; memset(&sf,0,sizeof(sf));
我正在为 WiX 编写一个 C++ 自定义操作,它将在安装期间调用以删除安装程序安装的任何残留物。考虑以下代码: UINT __stdcall DeleteResidue(MSIHANDLE hIns
我正在尝试通过 SHFileOperationA 复制文件夹功能。这是我的代码。 int main() { SHFILEOPSTRUCTA sf; int result; s
我正在使用 SHFileOperation() 从特定路径删除目录。它是在多个线程中完成的,删除的目录总是不同的。 有时,它会抛出异常: Exception thrown at 0x00007FF8A
我想要 一个后台线程将通过 SHFileOperation 函数复制文件,一次始终只有一个 SHFileOperation (但我希望它位于线程中)< 我需要 UI 输出,因此需要使用 FOF_SIM
我正在使用以下代码删除大量文件 function FastDelete(const fromDir: string): Boolean; var fos: TSHFileOpStruct; beg
我正在使用 Shell API 复制包含文件的文件夹。 SHFILEOPSTRUCT sf = {0}; sf.wFunc = FO_COPY; sf.hwnd = 0; sf.fFlags = FO
我正在尝试编写一个程序,该程序将使用 Windows API 根据日期删除一组与特定命名模式(通配符)匹配的文件/文件夹 ... SHFILEOPSTRUCT shFileOpStruct =
我有一段代码使用带有 FO_MOVE 操作的 Windows SHFileOperation 函数。指定的其他标志是 FOF_NOCONFIRMATION | FOF_NOERRORUI | FOF_
我使用这个程序: function MoveToRecycle(sFileName: widestring): Boolean; var fos: TSHFileOpStructW; begin
我有一个基于 MDI 的框架应用程序正在调用 SHFileOperation,如下所示: SHFILEOPSTRUCT opDelFiles = {0}; opDelFiles.hwnd = AfxG
我想删除一个文件到回收站。我使用这段代码。 SHFILEOPSTRUCT FileOp; FileOp.hwnd = NULL; FileOp.wFunc=FO_DELETE;
我正在使用以下函数将文件删除到回收站:(C++、MFC、Unicode) bool DeleteFileToPaperbasket (CString filename) { TCHAR Buff
我正在尝试将 A 驱动器的内容复制到文件夹 C:\test\disk1 中。文件夹 disk1 已经存在。该程序编译但运行时出现错误 87。我知道错误 87 与无效参数有关,但我不确定问题出在哪里。有
我找到了一些使用 SHFileOperation() 复制文件的代码,但我对 SHFILEOPSTRUCT structure 中可用的所有标志感到困惑. 这就是我正在做的事情。我有一个递归过程,根据
这会在桌面上创建一个新文件夹,但不会将文件夹 .pfrom 的内容 move 到文件夹 .pTo。 int main() { SHFILEOPSTRUCT sf = {0}; TCHA
我有一个涉及 SHFileOperation 的问题: SHFILEOPSTRUCT sf2; memset(&sf2,0,sizeof(sf2)); sf2.hwnd = N
我正在尝试使用 SHFileOperation 将文件/目录从一个位置复制到另一个位置。到目前为止,我的代码是, for(int index=0; index < clbSource.GetC
我是一名优秀的程序员,十分优秀!