gpt4 book ai didi

c++ - 无法将 wchar_t 传递给 LibXL writeStr

转载 作者:行者123 更新时间:2023-11-28 04:54:40 24 4
gpt4 key购买 nike

我正在尝试将西里尔字符写入在 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。

根据docs我应该能够传入 const wchar_t*。有什么方法可以将我的国际字符写入单元格吗?

最佳答案

LibXL 为函数的 ANSIUNICODE 版本提供 header 。

愿意使用 API 的 unicode 版本的程序应该定义 UNICODE宏。如果您使用的是 Visual Studio,只需转到 Project -> Properties -> Character Set 并将其设置为 Use Unicode Character Set 即可。

您看到的 xlSheetWriteStr 实际上是一个宏,它最终具有值 xlSheetWriteStrAxlSheetWriteStrW。如果UNICODE没有定义前者,如果是de后者。

函数xlSheetWriteStrASheetA.h中声明,而xlSheetWriteStrWSheetW.h中声明。

注意:最好保持一致。如果您使用函数的 unicode 版本,请使用所有函数的 unicode 版本。我这样说是因为在您的示例中我看到您使用的是 xlBookAddSheet 的 ansi 版本。

更新:对于库的 OSX 版本,宏是 _UNICODE,带有前面的下划线(有关详细信息,请参阅 libxl.h) .

关于c++ - 无法将 wchar_t 传递给 LibXL writeStr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47456882/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com