所谓的C++中有一个接口。1C (Native API) 的外部组件L"string",它使用形式为. 由于类型的大小wchar_t取决于平台(Linux - 4 字节,Windows - 2 字节),因此此处也使用了转换函数,以及宏:
#ifdef _WINDOWS
#define WCHAR_T wchar_t
#else
#define WCHAR_T uint16_t
#endif
用于与 1C 交互的函数具有标准接口。它们都必须发送和接收WCHAR_T*,即 wchar_t*适用于 Windows 和uint16_t*Linux。因为 uint16_t只是一个整数类型,显然它不会有任何问题。
我想过只是替换L"string"和u"string"摆脱不必要的转换。但尚不完全清楚二进制类型wchar_t和类型如何兼容char16_t?
似乎 1C 使用 UTF-16,并且char16_t为它创建了类型......这是否有问题,即使不是在这种情况下特别是,但总的来说,在用wchar_t新的替换旧的之间是否存在问题char16_t?
这是返回的代码
true:除了 UTF-16,我没有找到其他双字节编码。显然,这应该始终正常工作。