Не удается открыть растровый файл - PullRequest
0 голосов
/ 07 июня 2018

Я запускаю следующую команду, и она всегда возвращает ноль, поскольку по какой-либо причине файл растрового изображения не открывается.Пожалуйста, помогите!

const XCHAR* szFilePathW = L"C:\\Users\\Simrat\\Desktop";
std::ofstream bmpF;
    char szFilePathA[MSO_MAX_PATH]; // std::ofstream.open() takes char* in Android C++ compiler, whereas it takes both char* and wchar* in VC++
    WideCharToMultiByte(CP_UTF8, 0, szFilePathW, -1, szFilePathA, MSO_MAX_PATH, NULL, NULL);
    bmpF.open(szFilePathA, std::ofstream::binary | std::ofstream::out);
    if (!bmpF.is_open())
        return null;

Функциональность функции WideCharToMultiByte () можно найти здесь: https://msdn.microsoft.com/en-us/library/windows/desktop/dd374130(v=vs.85).aspx

1 Ответ

0 голосов
/ 07 июня 2018

Как прокомментировано, вы, кажется, пропустили имя файла.И код должен быть просто:

const WCHAR* szFilePath = L"C:\\Users\\Simrat\\Desktop\\name_of_bitmap_file_I_want_to_create.bmp";
std::ofstream bmpF;
bmpF.open (szFilePath, std::ofstream::binary | std::ofstream::out);

Нет необходимости преобразовывать в многобайтовые, см. MSDN (обратите внимание, что open имеет перегрузку const wchar_t * для параметра имени файла - в Windows).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...