【问题标题】:C++ Service Example - Unicode conversionC++ 服务示例 - Unicode 转换
【发布时间】: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'

【问题讨论】:

    标签: c++ visual-studio unicode service


    【解决方案1】:

    只需将您的所有项目转换为使用UNICODE 设置。在当今时代,您的应用程序可以被各种人使用各种脚本,并且在 Windows 上使用 UNICODE 支持是必不可少的。

    为此,请更改 Visual Studio 项目中的设置并修复所有错误。这可能需要使用std::wstring 而不是std::stringwchar_t * 而不是char *,以及像WCHARLPWSTRLPCWSTR 等WinAPI 类型。

    【讨论】:

    • 是的,这是我最初的想法。但是,我的应用程序不会真正受益于 Unicode。我找到了这张备忘单。学习如何将我的代码转换为 Unicode 是一个好的开始吗? i18nguy.com/unicode/c-unicode.html
    • @SzloseProgramming:已编辑。
    猜你喜欢
    • 2020-05-30
    • 1970-01-01
    • 2015-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-24
    • 1970-01-01
    相关资源
    最近更新 更多