差不多的代码 为啥在 delphi 下能正确运行 在 c 的控制台下就不行呢 出现内存访问错误 错误原因是差在 父窗口句柄呢 还是差在宽窄字符的处理上
程序代码:
#include <stdio.h>
#include <windows.h>
int main()
{
char strsrc[]="d:\\123.txt";
SHFILEOPSTRUCT lpfileop;
lpfileop.hwnd=NULL;
lpfileop.wFunc=FO_DELETE;
lpfileop.pFrom=strsrc;
lpfileop.fFlags=FOF_ALLOWUNDO;
lpfileop.hNameMappings=NULL;
lpfileop.fAnyOperationsAborted=false;
int nok=SHFileOperation(&lpfileop);
if(nok) printf("出现了错误\n");else printf("文件被成功删除到了回收站\n");
return 0;
}
/*
delphi7下能够成功运行的代码
procedure TForm1.Button1Click(Sender: TObject);
var
lpFileOp: TSHFileOpStruct;
begin
lpFileOp.Wnd := Application.Handle;
lpFileOp.wfunc := FO_DELETE;
lpFileOp.pFrom := pchar('d:\123.txt');
lpFileOp.fFlags := FOF_ALLOWUNDO;
lpFileOp.hNameMappings :=nil;
lpFileOp.lpszProgressTitle :=nil;
lpFileOp.fAnyOperationsAborted :=false;
SHFileOperation(lpFileOp);
end;
*/









