#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); }
Комментариев нет:
Отправить комментарий