C++ 服务示例 - Unicode 转换
Posted
技术标签:
【中文标题】C++ 服务示例 - Unicode 转换【英文标题】:C++ Service Example - Unicode conversion 【发布时间】:2015-07-12 05:48:59 【问题描述】:我找到了一个关于如何在 Windows 上使用服务的非常详细的示例。 (https://code.msdn.microsoft.com/windowsapps/CppWindowsService-cacf4948)
它本身就可以正常工作,但我需要将它应用到我现有的一个项目中,这就是问题所在。 Microsoft 给出的示例使用 Unicode(在 Visual Studio 项目设置中设置),但我的项目使用“多字节字符集”。在我的项目中使用示例代码会导致与
的许多兼容性相关问题现在,我需要修改 Microsoft 的示例以使用“多字节字符集”,但我不知道它是否可能。
我不会在此处粘贴任何代码,因为它粘贴在 Microsoft 网站上并且易于查看。我看不出解释我自己的项目的意义,因为问题仅在于 Unicode 格式。
TL:DR 获得 2 个项目 - 一个使用 Unicode,另一个使用“多字节字符集”。需要将它们合并在一起。最好的方法是什么?
编辑:我将更具体地说明错误以防万一......
a value of type "PWSTR" cannot be used to initialize an entity of type "LPSTR"
cannot convert from 'PWSTR' to 'LPSTR'
【问题讨论】:
【参考方案1】:只需将您的所有项目转换为使用UNICODE
设置。在当今时代,您的应用程序可以被各种人使用各种脚本,并且在 Windows 上使用 UNICODE 支持是必不可少的。
为此,请更改 Visual Studio 项目中的设置并修复所有错误。这可能需要使用std::wstring
而不是std::string
、wchar_t *
而不是char *
,以及像WCHAR
、LPWSTR
、LPCWSTR
等WinAPI 类型。
【讨论】:
是的,这是我最初的想法。但是,我的应用程序不会真正受益于 Unicode。我找到了这张备忘单。学习如何将我的代码转换为 Unicode 是一个好的开始吗? i18nguy.com/unicode/c-unicode.html @SzloseProgramming:已编辑。以上是关于C++ 服务示例 - Unicode 转换的主要内容,如果未能解决你的问题,请参考以下文章
在 C++ 中将 std::string 转换为 Unicode 字符串
如何在 C++ 中将字符的十进制代码转换为 Unicode 字符串?