char text[] = "schtasks.exe /create /tn abc /sc daily /tr calc.exe /st 12:00\0";
size_t size = strlen(text) + 1;
wchar_t* wtext = new wchar_t[size];
size_t outSize;
mbstowcs_s(&outSize, wtext, size, text, size-1);
LPWSTR ptr = wtext;
if (CreateProcessW(L"C:\\Windows\\System32\\schtasks.exe", ptr, NULL, NULL, FALSE, 0 , NULL, NULL, &startup, &process_info))
Такой код работает и создаёт задачу, но стоит мне увеличить длину строки text, к примеру вместо /tn abc написать /tn abcd, программа вылетает на функции CreateProcessW. Никаких ошибок не выводит, просто The program has unexpectedly finished.. Не могу понять, в чём ошибка, может кто помочь?
UPD: заменил mbstowcs на mbstowcs_s, теперь функция выполняется успешно, но при этом не происходит создание задачи, независимо от длинны команды
Поле cb в STARTUPINFOW должно содержать корректное значение. Остальные поля STARTUPINFO и PROCESS_INFORMATION лучше обнулить.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости