#cpp #visual_cpp
Есть текстовый файл в котором хранится ссылка к примеру (https://ru.stackoverflow.com)
какая там ссылка неизвестна. Я считываю ссылку из файла и записываю её в переменную line.
string line;
ifstream writeT("test.txt");
writeT.is_open();
getline(writeT, line);
Далее мне нужно как то присвоить значение переменной line в WCHAR, я знаю как присвоить
текст L"sometext". Как можно присвоить WCHAR webAddress[256] значение переменной line
не зная ссылку?
WCHAR webAddress[256] = ;
HRESULT hr = URLDownloadToFile(NULL, webAddress, szFileName, 0, NULL);
Ответы
Ответ 1
Если там действительно ссылка, то там набор символов ASCII, и можно просто написать std::wstring wline(line.begin(), line.end());Ответ 2
Предложенный до меня ответ подходит только для ASCII строк. Я рассмотрю общий случай, когда входная строка содержит не только ASCII-символы, но и, к примеру, кириллицу. Предположим, у вас входной файл в кодировке UTF-8. Вам нужно конвертировать строку в кодировку UTF-16, понятную функциям WinAPI. Это можно сделать с помощью WinAPI функции MultiByteToWideChar: std::string line; // ... пропущено WCHAR webAddress[256]; if (MultiByteToWideChar(CP_UTF8, 0, line.c_str(), line.size() + 1, webAddress, 256)) { HRESULT hr = URLDownloadToFileW(NULL, webAddress, szFileName, 0, NULL); }
Комментариев нет:
Отправить комментарий