Не могу передать wchar_t в LibXL writeStr

Я стараюсь писать символы кириллицы в электронную таблицу, которая создается в приложении OSX:

sheet = xlBookAddSheet(book, "Output", 0);
detailFormat = xlBookAddFormat(book, 0);
wchar_t *w_user = (wchar_t*)malloc(max_chars * sizeof(wchar_t));
//get wchar_t characters...
xlSheetWriteStr(sheet, row, column, w_user, detailFormat);

но последняя строка не скомпилируется как xlSheetWriteStr ожидает const char* вместо w_user.

Согласно документы Я должен быть в состоянии пройти в const wchar_t*, Есть ли способ записать мои международные символы в ячейку?

0

Решение

LibXL предоставляет заголовки для ANSI а также UNICODE версии функций.

Программы, желающие использовать Unicode-версию API, должны определить UNICODE макро. Если вы используете Visual Studio, это так же просто, как Project -> Properties -> Character Set и установите его Use Unicode Character Set,

Что вы видите как xlSheetWriteStr на самом деле макрос, который в конечном итоге имеет значение xlSheetWriteStrA или же xlSheetWriteStrW, Если UNICODE не определено первое, если это де позже.

Функция xlSheetWriteStrA объявлен в SheetA.h, в то время как xlSheetWriteStrW объявлен в SheetW.h,

Замечания: Лучше, если вы будете последовательны. Если вы используете Unicode-версию функции, используйте Unicode-версию всех функций. Я говорю это, потому что в вашем примере я вижу, что вы используете версию ANSI xlBookAddSheet,

Обновить: Для версии библиотеки OSX макрос _UNICODE, с предыдущим подчеркиванием (подробности см. в libxl.h).

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]