visual studio - c++服务示例- Unicode转换

visual studio - C++ Service Example - Unicode conversion

本文关键字:Unicode 转换 服务 studio c++ visual      更新时间:2023-10-16

我找到了一个关于如何在Windows上使用服务的非常详细的例子。(https://code.msdn.microsoft.com/windowsapps/CppWindowsService-cacf4948)

它自己工作得很好,但我需要将它应用到我现有的项目之一,这里是问题。微软给出的例子使用Unicode(在Visual Studio项目设置中设置),但我的项目使用"多字节字符集"。在我的项目中使用示例代码会导致许多与

相关的兼容性问题。

现在,我需要修改微软的例子,以"多字节字符集"工作,但我不知道它是否可能。

我不打算在这里粘贴任何代码,因为它粘贴在微软网站上,很容易查看。我不认为有必要解释我自己的项目,因为问题只与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'

将您的所有项目转换为使用UNICODE设置。在这个时代,你的应用程序可以被不同的人用不同的脚本使用,在Windows上使用UNICODE支持是必不可少的。

要做到这一点,请更改Visual Studio项目中的设置并修复所有错误。这可能需要使用std::wstring而不是std::string, wchar_t *而不是char *,以及WinAPI类型如WCHAR, LPWSTR, LPCWSTR等。