पर कौन सी त्रुटियां हो रही हैं, मैं रीसाइक्लिंग बिन में फ़ाइल भेजने के लिए SHFileOperation()
फ़ंक्शन का उपयोग कर रहा हूं और मुझे 2 त्रुटियां मिल रही हैं जो मुझे नहीं पता कि उनका क्या मतलब है क्योंकि इस फ़ंक्शन के साथ त्रुटि कोड GetLastError()
मान नहीं हैं।SHFileOperation का उपयोग करना:
जब फ़ंक्शन SHFileOperation()
विफल मान विफल रहता है 0x57 (दशमलव 87) और 0x2 (दशमलव 2)। क्या कोई मुझे इन त्रुटियों की परिभाषाओं की खोज करने में मदद कर सकता है (विशेष रूप से जब आप इस फ़ंक्शन के साथ विचार करते हैं, तो त्रुटियां GetLastError()
कोड का हिस्सा नहीं हैं)।
कुछ महत्वपूर्ण जानकारी:
मैं विंडोज 7 का उपयोग कर रहा (& मुझे पता है कि MSDN SHFileOperation के बजाय IFileOperation उपयोग करने के लिए कहते हैं, लेकिन मैं जो मेरे ऐप पीछे की ओर संगत बनाने के लिए कारण है कि मैं SHFileOperation उपयोग कर रहा हूँ चाहते हैं) । अगर त्रुटि हो रही है क्योंकि मैं विंडोज 7 पर SHFileOperation का उपयोग कर रहा हूं, तो मैं इस काम को 2000 & से विंडोज़ के सभी संस्करणों पर बनाने के लिए किस समाधान का उपयोग कर सकता हूं?
मैंने बड़े पैमाने पर & को डीबग किया है, जहां तक मुझे पता है कि मेरा SHFILEOPSTRUCT सही है (सही झंडे का उपयोग किया जाता है, .pFrom एक डबल-नल एंड स्ट्रिंग है)। एक चीज जिसे मैं निश्चित रूप से जानता हूं वह यह है कि फ़ाइल का मेरा पथ सही है (वास्तविक फ़ाइल & पर यह सही ढंग से स्वरूपित होता है)।
बारे में 2/5 बार SHFileOperation() काम करता है, जिसका अर्थ यह रीसायकल बिन & एक त्रुटि
रिटर्न नहीं है करने के लिए फ़ाइल भेजता है।
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;
}
आप टिप्पणी भ्रामक है। आपको इसे उसी पंक्ति में पास करना चाहिए जैसे कि अगर ब्लॉक के अंदर या अंदर और इसे विफल होने पर इसे // // में बदल दें – sergiol