【发布时间】:2010-09-03 08:39:26
【问题描述】:
我有一个 Windows 服务,它在它的服务主函数中创建一个命名管道。代码sn-p如下:
void WINAPI ServiceMain(DWORD argc, LPTSTR *argv)
{
DWORD status;
DWORD specificError;
m_ServiceStatus.dwServiceType = SERVICE_WIN32;
m_ServiceStatus.dwCurrentState = SERVICE_START_PENDING;
m_ServiceStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP;
m_ServiceStatus.dwWin32ExitCode = 0;
m_ServiceStatus.dwServiceSpecificExitCode = 0;
m_ServiceStatus.dwCheckPoint = 0;
m_ServiceStatus.dwWaitHint = 0;
m_ServiceStatusHandle = RegisterServiceCtrlHandler("myService",
ServiceCtrlHandler);
if (m_ServiceStatusHandle == (SERVICE_STATUS_HANDLE)0)
{
return;
}
m_ServiceStatus.dwCurrentState = SERVICE_RUNNING;
m_ServiceStatus.dwCheckPoint = 0;
m_ServiceStatus.dwWaitHint = 0;
if (!SetServiceStatus (m_ServiceStatusHandle, &m_ServiceStatus))
{
}
CraeteNamedPipe();
return;
}
CraeteNamedPipe 函数创建一个命名管道\\.\pipe\1stPipe。
我能够在我的 XP 机器上成功安装和运行我的服务。
现在如何使用另一个程序访问命名管道\\.\pipe\1stPipe。
任何代码 sn-p 或示例文章都会有所帮助。
【问题讨论】:
标签: c++ windows visual-c++ windows-services named-pipes