首页 > 解决方案 > 使用 unicode 构建示例软件

问题描述

我开始使用 Microsoft 提供的示例代码开发 Windows 服务。我已经编译了仅资源的 DLL,但是在构建此处提供的第一个文件时出现错误:https ://docs.microsoft.com/en-us/windows/win32/services/svc-cpp

我遇到了几个与转换不同字符串数据类型相关的错误:

这是一个示例代码行:

SvcReportEvent(TEXT("RegisterServiceCtrlHandler"));

哪个产生了这个错误:

E0167   argument of type "const wchar_t *" is incompatible with parameter of type "LPTSTR"  

这是另一个例子:

SvcReportEvent(TEXT("StartServiceCtrlDispatcher"));

它正在产生此错误:

E0144   a value of type "const wchar_t *" cannot be used to initialize an entity of type "LPWSTR"

和这个:

if (!GetModuleFileName("", szPath, MAX_PATH))

正在产生此错误:

C2664   'DWORD GetModuleFileNameW(HMODULE,LPWSTR,DWORD)': cannot convert argument 1 from 'const char [1]' to 'HMODULE'

我的项目设置为使用“项目属性”对话框中的 Unicode 字符集。我希望示例代码能够毫无问题地构建,所以我不想进入并开始转换或转换变量来解决问题。我觉得必须有一个设置或我需要改变的东西。

处理这些错误的最佳方法是什么?

标签: c++visual-c++unicode

解决方案


推荐阅读