我用win32,unicode的c ++写了一个程序;它使用套接字从另一个程序读取数据; 我在本地电脑上测试过;我用vs2008编译了它;
当用作控制台模式时,它在winxp和win7中都能正常工作; 当用作ntservice时,它在xp中工作,但在windows7中失败;
在win7中,也就是说,它的套接字工作正常,它可以输出使用logcplus的日志,但是它无法访问另一个程序的api来读取数据;同时,它的日志无法在debugview中显示,虽然我输出的日志在调试模式下使用了OutputDebugString;http://technet.microsoft.com/zh-cn/query/bb203962(v=VS.71)说: 会话0隔离 服务始终在会话0中运行。在Windows Vista之前,第一个登录的用户也被分配到会话0.现在,会话0专门用于服务和其他与交互式用户会话无关的应用程序。 (第一个登录用户连接到会话1,第二个登录用户连接到会话2,依此类推。)会话0不支持与用户交互的进程。
此更改意味着服务无法向应用程序发布或发送消息,并且应用程序无法向服务发送或发送消息。此外,服务无法直接显示用户界面项(如对话框)。服务可以使用WTSSendMessage函数在另一个会话中显示对话框。
如果是原因,如何解决? 感谢