c – 从LPWSTR转换为LPTSTR

c – 从LPWSTR转换为LPTSTR,第1张

概述我试图将参数LPWSTR转换为LPTSTR,那么我可以使用任何库来进行简单的字符串转换吗? 如果定义了_UNICODE,则无法进行转换 – TCHAR是WCHAR,LPWSTR是LPTSTR;否则,TCHAR是CHAR,LPTSTR是LPSTR.在最后一种情况下,您可以使用 WideCharToMultiByte API将LPWSTR(即Unicode字符串)转换为“窄”字符串. 此外,您可以使用 我试图将参数LPWSTR转换为LPTSTR,那么我可以使用任何库来进行简单的字符串转换吗?解决方法 如果定义了_UNICODE,则无法进行转换 – TCHAR是WCHAR,LPWSTR是LPTSTR;否则,TCHAR是CHAR,LPTSTR是LPSTR.在最后一种情况下,您可以使用 WideCharToMultiByte API将LPWSTR(即Unicode字符串)转换为“窄”字符串.

此外,您可以使用wcstombs C库函数,假设windows类型CHAR和WCHAR映射到C类型char和wchar_t(在VC中肯定是这种情况),并且当前C语言环境是您打算使用的语言环境转换.

另请参阅Alf关于此事的更多见解的评论 – 最重要的一点是,如果可以,您应该避免这种转换,因为您的输出编码通常不能忠实地表示输入,并且,取决于您的字符串代表什么,这可能意味着乱码文本以及找不到所需文件,或者更糟糕的是,在错误的路径上 *** 作.

因此,将项目设置为使用Unicode(如@ prazuber的答案)并始终尝试使用支持Unicode的API,以避免这种转换.

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

总结

以上是内存溢出为你收集整理的c – 从LPWSTR转换为LPTSTR全部内容,希望文章能够帮你解决c – 从LPWSTR转换为LPTSTR所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1214611.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-05
下一篇2022-06-05

发表评论

登录后才能评论

评论列表(0条)

    保存