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::stringwchar_t * 而不是char *,以及像WCHARLPWSTRLPCWSTR 等WinAPI 类型。

【讨论】:

是的,这是我最初的想法。但是,我的应用程序不会真正受益于 Unicode。我找到了这张备忘单。学习如何将我的代码转换为 Unicode 是一个好的开始吗? i18nguy.com/unicode/c-unicode.html @SzloseProgramming:已编辑。

以上是关于C++ 服务示例 - Unicode 转换的主要内容,如果未能解决你的问题,请参考以下文章

C++ Win32api 从用户输入输出 Unicode

Python编码

在 C++ 中将 std::string 转换为 Unicode 字符串

如何在 C++ 中将字符的十进制代码转换为 Unicode 字符串?

在 MFC C++ 中将 char 数组转换为 UNICODE

如何在 C++ 中将字符串从十进制代码转换为西里尔文/unicode16?