字符类型问题C2440,C2664

源码链接:http://blog.csdn.net/u010499449/article/details/56671118

网上找了一个关于Windows服务的例子,用VS2015编译出现如下两个报错

错误地方:entrytable[0].lpServiceName = "testservice";

错误代码:Error    C2440    '=': cannot convert from 'const char [12]' to 'LPWSTR'

错误地方:hstatus = ::RegisterServiceCtrlHandler("testservice", CtrlHandler);

错误代码:Error    C2664    'SERVICE_STATUS_HANDLE RegisterServiceCtrlHandlerW(LPCWSTR,LPHANDLER_FUNCTION)': cannot convert argument 1 from 'const char [12]' to 'LPCWSTR'

 

解决方法:首先是把项目属性-->General-->Character Set 改为Not set,就是改为不用Unicode, 按照我的理解,这个设置应该可以解决,但是实际没解决。

方法二:在字符串前加_TEXT(),可百度它的含义,大致是解决字符集切换问题。

 

修改后可编译通过

hstatus = ::RegisterServiceCtrlHandler(_TEXT("testservice"), CtrlHandler);

entrytable[0].lpServiceName = _TEXT("testservice");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值