Potrzebuję sformatować ciąg znaków, aby był ciągiem zakończonym podwójnym zakończeniem, aby móc używać funkcji SHFileOperation.Podwójny łańcuch zakończony znakiem Null
Ciekawe jest to, znalazłem jedną z następujących czynności działa, ale nie zarówno:
// 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);
Czy ktoś ma pomysł na to?
Czy istnieje inny sposób dołączania ciągów o podwójnej końcówce?
która z nich działa? – zsalzbank
Żadne z tych * nie * powinno działać. To po prostu wypadek, jeśli któryś z nich to zrobi. –
@Greg: nie powinien działać drugi przykład, ponieważ CString ma następujący "przyjaciel CString operator + (const CString & string, LPCTSTR lpsz);'? (przez pracę mam na myśli operację +, nie przekazuję 'CString' do' SHFileOperation') –