将 TCHAR 数组转换为 char 数组
如何将 TCHAR[]
转换为 char[]
?
How to convert to TCHAR[]
to char[]
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如何将 TCHAR[]
转换为 char[]
?
How to convert to TCHAR[]
to char[]
?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
老实说,我不知道如何使用数组,但是使用指针,微软为我们提供了一些API,例如 wctomb 和 wcstombs.第一个比第二个安全性低。所以我认为你可以通过一个数组到指针和一个指针到数组的转换来实现你想要实现的目标,例如:
PS:这可能不是最好的解决方案,但至少它是有效的。
Honestly, I don't know how to do it with arrays but with pointers, Microsoft provides us with some APIs, such as wctomb and wcstombs. First one is less secure than the second one. So I think you can do what you want to achieve with one array-to-pointer and one pointer-to-array casting like;
PS: Could not be the best solution but at least it's working and functional.
TCHAR 是 Microsoft 特定的 typedef,用于
char
或wchar_t
(宽字符)。转换为 char 取决于它实际上是其中的哪一个。如果 TCHAR 实际上是一个
char
,那么您可以进行简单的转换,但如果它确实是一个wchar_t
,您将需要一个例程来在字符集之间进行转换。请参阅函数MultiByteToWideChar()< /代码>
。
TCHAR is a Microsoft-specific typedef for either
char
orwchar_t
(a wide character).Conversion to char depends on which of these it actually is. If TCHAR is actually a
char
, then you can do a simple cast, but if it is truly awchar_t
, you'll need a routine to convert between character sets. See the functionMultiByteToWideChar()
.为什么不直接使用 wcstombs_s ?
下面的代码显示了它是多么简单。
Why not just use wcstombs_s ?
Here is the code to show how simple it is.
它取决于字符集(Unicode 或 ANSI)(wchar_t 或 char),因此如果您使用 ANSI,则 TCHAR 将是 char 而不进行任何转换,但对于 Unicode,您必须从 wchar_t 转换为 char,您可以使用 WideCharToMultiByte
It depends on the character set (Unicode or ANSI) (wchar_t or char), so if you are using ANSI simply TCHAR will be char without any casting, but for Unicode, you have to convert from wchar_t to char, you can use WideCharToMultiByte