
wchar_t?
char, то это строка в ASCII. Если тип - wchar_t, то это строка в UTF-16/UCS2. Если буфер должен содержать сырые произвольные данные, то его тип будет std::byte.std::vector, или - std::array, или - std::span. Иначе это будет бессмысленный блок памяти, в который требуется внести смысл - т.е. переписать на осмысленный код.как отправить post запросом картинку или любой другой файл через wininet
wchar_t* loadFile(const wchar_t* fname) {
wifstream ifs(fname, ios::binary);
if (ifs.is_open()) {
ifs.seekg(0, ios::end);
size_t len = (size_t)ifs.tellg();
ifs.seekg(0, ios::beg);
wchar_t* data = new wchar_t[len];
ZeroMemory(data, len);
ifs.read(data, len);
ifs.close();
return data;
}
}typedef std::basic_ofstream<BYTE, std::char_traits<BYTE>> bofstream; std::byte. И от new wchar_t[len] стоит тоже отказаться в пользу std::vector<std::byte>.ZeroMemory(data, len) делает фиктивную работу - только время тратит, т.к. следом буфер перезаписывается из файла.ZeroMemory зануляет только половину буфера, т.к. параметр длины задается в байтах, а буфер у тебя из двухбайтовых.std::vector<std::byte> ReadImage( const std::wstring_view file_path ) является более осмысленной. Слово Load - это загрузка, в отношении файлов применяется к загрузке готового формата данных. Read - простое чтение данных без разбора формата. Собственно формат у тебя не разбирается, поэтому и не Load. Результатом является блок байт с известной длиной, т.е. просто будет возвращено содержимое файла. file_path однозначно говорит, откуда будет прочитан результат, константность говорит о том, что file_path в функции используется как есть и, стало быть, функция является чистой.