Ne tür hatalar meydana geliyor SHFileOperation()
işlevini geri dönüşüm kutusuna bir dosya göndermek için kullanıyorum ve ne demek istediğimi bilmediğim 2 hata alıyorum çünkü bu işlevle hata kodları GetLastError()
değerleri değil.SHFileOperation'ı Kullanma:
SHFileOperation()
işlevi başarısız olduğunda, dönüş değerleri 0x57 (ondalık 87) ve 0x2 (ondalık 2) olur. Herkes bu hataların tanımlarını keşfetmeme yardımcı olabilir (özellikle bu işlevle çalışırken, hatalar GetLastError()
kodlarının bir parçası değildir).
bazı önemli bilgiler:
I (MSDN yerine SHFileOperation ait IFileOperation kullanmayı diyor biliyorum ama ben SHFileOperation kullanıyorum neden olan benim app geriye compatable yapmak istiyorum &) Windows 7 kullanıyorum . Windows 7'de SHFileOperation kullanıyorum çünkü bu hata oluşuyorsa, bu çalışmayı 2000 &'dan tüm Windows sürümlerinde yapmak için hangi çözümü kullanabilirim?
SHFILEOPSTRUCT öğemin doğru olduğunu bildiğim kadarıyla hata ayıklaması var & (doğru bayraklar kullanılıyor, .pFrom çift null biten bir dizedir). Emin olduğum bir şey, dosyaya giden yolun doğru olduğudur (doğru bir şekilde biçimlendirilmiş olan gerçek bir dosyaya & yol açar).
Hakkında 2/5 kez SHFileOperation() o & bir hatayı
döndürür gelmez geri dönüşüm kutusuna dosyayı gönderir, yani çalışır.
BOOL result;
SHFILEOPSTRUCT fileStruct;
fileStruct.hwnd = hwnd;
fileStruct.wFunc = FO_DELETE;
fileStruct.pFrom = dest.c_str();
fileStruct.fFlags = FOF_FILESONLY; // FOF_ALLOWUNDO
fileStruct.fAnyOperationsAborted = result;
// Call operation(delete file)
int success = SHFileOperation(&fileStruct);
// if delete was successful
if (success != 0)
{
printf("%s \t %X %d \n", dest.c_str(), success, success);
cout << result << endl;
MessageBox(hwnd, "Failed to delete file", "Error", MB_OK|MB_ICONERROR);
return;
}
Siz yorum yanıltıcı. Bunu, blobun içinde veya içinde olduğu gibi aynı satıra geçirmeli ve 'silme başarısız olduysa' olarak değiştirmelisiniz. – sergiol