Win Api 有名管道通信--扫雷辅助(四)
生活随笔
收集整理的這篇文章主要介紹了
Win Api 有名管道通信--扫雷辅助(四)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
有名管道的使用
同linux 下一樣 通過有名管道 實現非父子進程(資源繼承)關系的 進程間通信(Inter Process Communicate)
無名管道是通過內核進行內存共享 , 而有名管道是通過文件系統進行的
核心代碼
m_hPipe = CreateNamedPipe(lpPipeName, PIPE_ACCESS_DUPLEX | FILE_FLAG_OVERLAPPED, \PIPE_TYPE_BYTE | PIPE_READMODE_BYTE | PIPE_WAIT, 1, 0, 0, 1000, NULL);API 用于創建一個有名管道 , 并且返回它的句柄
if (ReadFile(m_hPipe, buffer, sizeof(buffer), &ReadNum, NULL) == FALSE)API 用于讀取管道 , 放在線程中輪詢吧
CSting m_cmd; // 這里比較重要的一點 WriteFile(m_hPipe, m_cmd.GetString(), m_cmd.GetAllocLength()*2, &writeNum, NULL);API 用于寫管道, 第二個,就是字符串指針, 第三個參數就是 寫入字符數
這里有一點 很坑的事情, 由于管道是以字節為單位傳遞的數據 ,
然而 使用 unicode 之后, 一個字符是兩個字節 , 所以這個寫入字節數 需要設置為
這樣才能完整的把自己的書籍傳遞過去 , 否則的話,會數據不完整
而導致在管道中滯留,
總結
以上是生活随笔為你收集整理的Win Api 有名管道通信--扫雷辅助(四)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 创建线程时候多参数传递方法及参数改变问题
- 下一篇: 常见排序算法详解 (收藏!)