gpt4 book ai didi

c++ - 从 LPWSTR 转换为 LPTSTR

转载 作者:太空狗 更新时间:2023-10-29 20:15:14 26 4
gpt4 key购买 nike

我正在尝试将参数 LPWSTR 转换为 LPTSTR,我可以使用任何库来轻松进行字符串转换吗?

最佳答案

如果定义了 _UNICODE,则无需进行任何转换 - TCHARWCHAR,而 LPWSTRLPTSTR;否则,TCHARCHARLPTSTRLPSTR。在最后一种情况下,您可以使用 WideCharToMultiByteLPWSTR(即 Unicode 字符串)转换为“窄”字符串的 API。

此外,您还可以使用 wcstombs C 库函数,假设 Windows 类型 CHARWCHAR 映射到 C 类型 charwchar_t(在 VC++ 中肯定是这种情况),并且当前的 C 语言环境是您打算用于转换的语言环境。


另请参阅 Alf 的评论以获得对此事的更多见解 - 最重要的一点是如果可以,您应该避免这种转换,因为您的输出编码为general 不能忠实地表示输入,并且根据您的字符串表示的内容,这可能意味着乱码以及找不到所需的文件,或者更糟的是,在错误的路径上操作。

因此,将您的项目设置为使用 Unicode(如 @prazuber 的回答)并始终尝试使用 Unicode 感知 API,以避免这种转换。

不过,请记住,仅使用 Unicode 版本的 Windows API 可能意味着失去与 Windows 9x 的兼容性;对于绝大多数情况这不是问题,但如果在您的应用程序中支持此类操作系统至关重要,请检查您使用的 API 是否在 MSLU 中受支持。 .

关于c++ - 从 LPWSTR 转换为 LPTSTR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13903297/

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