хе-хе, боюсь, этот код делает не совсем то, что вы от него ожидаете
Код: Выделить всё
int len=fnum+1;
for(int i=0;i<fnum;i++)len+=files[i].Length;
wchar_t *from=(wchar_t*)malloc(len*2), *str=from;
for(int i=0;i<fnum;i++)
{
lstrcpy(str,files[i].c_str());
str+=files[i].Length+1;
}
*str=0;
fop.wFunc = move?FO_MOVE:FO_COPY;
fop.pFrom = from;
fop.pTo = dest.c_str();
fop.hwnd = NULL;
fop.fFlags=0;
fop.fAnyOperationsAborted=false;
fop.lpszProgressTitle=NULL;
fop.hNameMappings=NULL;
SHFileOperation(&fop);
free(from);
не знаю, правильный ли метод c_str() для WideString, в общем, должно быть понятно.
Max Diesel писал(а):подобные системные функции, использующие массивы байтов вместо строк для входящих и исходящих параметров, зачастую ставят меня в тупик
да ладно, какие могут быть проблемы с массивами? Это ж фундаментальный тип данных С.