Ho bisogno di formattare una stringa come doppia stringa con terminazione null per utilizzare SHFileOperation.Doppia stringa con terminazione null
parte interessante è che ho trovato in uno dei seguenti di lavoro, ma non entrambi:
// 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);
Qualcuno ha idea su questo?
C'è un altro modo per aggiungere una stringa con doppia terminazione?
quale funziona? – zsalzbank
Nessuno di questi * dovrebbe * funzionare. È solo un incidente se uno di loro lo fa. –
@Greg: non dovrebbe funzionare il secondo esempio dal momento che CString ha il seguente 'friend CString operator + (const CString & string, LPCTSTR lpsz);'? (per lavoro intendo l'operazione +, non passando 'CString' a' SHFileOperation') –