当前位置:编程学习 > C#/ASP.NET >>

命名管道创建失败

我的程序菜单上有个按钮 点击就可以创建一个命名管道 但运行后点击 会弹出"创建命名管道失败"的窗口 我不知道哪边错了 各位知道的赐教啊 谢了先!!!
     
           hPipe=CreateNamedPipe("\\\\.\\pipe\\MyPipe",PIPE_ACCESS_DUPLEX | FILE_FLAG_OVERLAPPED,0,1,1024,1024,0,NULL);
    if(INVALID_HANDLE_VALUE==hPipe)
    {
        MessageBox("创建命名管道失败");
        hPipe=NULL;
        return;
    }

    HANDLE hEvent;
    hEvent=CreateEvent(NULL,TRUE,FALSE,NULL);
    if(!hEvent)
    {
        MessageBox("创建事件对象失败");
        CloseHandle(hPipe);
        hPipe=NULL;
        return;
    }

    OVERLAPPED ovlap;
    ZeroMemory(&ovlap,sizeof(OVERLAPPED));
    ovlap.hEvent=hEvent;

    if(!ConnectNamedPipe(hPipe,&ovlap))
    {
        if(ERROR_IO_PENDING!=GetLastError())
        {
            MessageBox("等待客户端连接失败");
            CloseHandle(hPipe);
            CloseHandle(hEvent);
            hPipe=NULL;
            return;
        }
    }

    if(WAIT_FAILED==WaitForSingleObject(hEvent,INFINITE))
    {
        MessageBox("等待对象失败");
        CloseHandle(hPipe);
        CloseHandle(hEvent);
        hPipe=NULL;
        return;
    }
    CloseHandle(hEvent); --------------------编程问答-------------------- getlasterror --------------------编程问答--------------------

//看看我这个非重叠的能成功否
BOOL CServerDlg::CreateServerPipe(LPCTSTR lpPipeName)
{
m_hHandle = CreateNamedPipe(lpPipeName,PIPE_ACCESS_DUPLEX,
PIPE_TYPE_MESSAGE|PIPE_READMODE_MESSAGE|PIPE_WAIT,
PIPE_UNLIMITED_INSTANCES,BUFSIZE*sizeof(TCHAR),BUFSIZE*sizeof(TCHAR),
NMPWAIT_USE_DEFAULT_WAIT,NULL);

if(m_hHandle==INVALID_HANDLE_VALUE)
return FALSE;
if(!ConnectNamedPipe(m_hHandle,NULL))//一直等待客户端连接
{
CloseHandle(m_hHandle);
m_hHandle = INVALID_HANDLE_VALUE;
return FALSE;
}
return TRUE;
}
--------------------编程问答--------------------
引用 1 楼 hdt 的回复:
getlasterror

NATIVE的命名管道没用过,顶! --------------------编程问答-------------------- up~~~
补充:.NET技术 ,  VC.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,