У меня есть код, который записывает строку в STDIN процесса 7-Zip.
if (!WriteFile(hInput, string.c_str(), dwBytesToWrite, &dwBytesWritten, NULL)) {
logger.error(L"write file failed", GetLastError());
goto Cleanup;
}
Эта строка является вводом пароля в stdin процесса 7-zip. Код работает нормально (процесс 7-Zip может успешно извлечь файл), если пароль содержит все символы ASCII, например: Пароль @ 123. Но произойдет сбой, если пароль @ WSX3edcß, этот код завершится неудачно (процесс 7-Zip получает неправильный пароль).
Напомним, что значение пароля читается из третьего инструмента из командной строки. Затем это значение передается инструменту с помощью именованного канала. Из которого он пишет в 7-почтовый стандарт.
Есть ли способ передать не-ASCII-строку процессу 7-zip?
Я попытался написать wsrting на стандартный ввод в соответствии с вышеуказанным соглашением, но не работает.
Задача ещё не решена.
Других решений пока нет …