源码链接: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");