Мне нужно форматировать строку, которая должна быть двойной нулевой конец строки, чтобы использовать SHFileOperation.Двойная строка с нулевым завершением
Интересная часть я нашел один из следующих рабочих, но не оба:
// Example 1
CString szDir(_T("D:\\Test"));
szDir = szDir + _T('\0') + _T('\0');
// Example 2
CString szDir(_T("D:\\Test"));
szDir = szDir + _T("\0\0");
//Delete folder
SHFILEOPSTRUCT fileop;
fileop.hwnd = NULL; // no status display
fileop.wFunc = FO_DELETE; // delete operation
fileop.pFrom = szDir; // source file name as double null terminated string
fileop.pTo = NULL; // no destination needed
fileop.fFlags = FOF_NOCONFIRMATION|FOF_SILENT; // do not prompt the user
fileop.fAnyOperationsAborted = FALSE;
fileop.lpszProgressTitle = NULL;
fileop.hNameMappings = NULL;
int ret = SHFileOperation(&fileop);
ли кто-нибудь имеет представление об этом?
Есть ли другой способ добавить строку с двойным завершением?
который работает? – zsalzbank
Ни один из них не должен работать. Это просто случайность, если один из них. –
@Greg: не должен работать второй пример, так как CString имеет следующий оператор '' друга CString + (const CString & string, LPCTSTR lpsz); '? (по работе я имею в виду операцию +, не передавая 'CString' в' SHFileOperation') –