-
[IPC] C#-C++ 간 Named Pipe 연결시 겪은 문제 2가지문제해결 2023. 3. 13. 14:49
1. Pipe 연결 안됨(ERROR_FILE_NOT_FOUND)
C#의 NamedPipeServerStream와 C++의 CreateFile에서 사용하는 Pipe 이름이 다르다.
C#에서 "PipeName"라면, C++에서는 "\\.\pipe\PipeName"으로 사용한다.별 거 아닌 차이점인데 모르면 왜 안되지 하면서 끝까지 알 수 없음
GetLastError() 찍어보면 2(ERROR_FILE_NOT_FOUND)가 나온다.
이름이 다르니까 당연한 오류인데, 모르니까 C#-C++이라서 서로 연결이 안되나하고 고민하는 순간 망함2. 전달 메시지 짤림
C#에서 StreamReader를 사용해서 값을 읽어오는데 계속 첫글자만 읽힘
NamedPipeServerStream에 Read()로 바이트를 바로 읽어오면 해결cbBytesRequest = CIpc.bufSize;
cbBytesRead = server.Read(bRead, 0, cbBytesRequest);
strMessage = Encoding.Unicode.GetString(bRead).TrimEnd('');그리고 문제가 해결되면 눈에 보이는 예제 코드...
https://github.com/sovprene/named-pipe-examples반응형'문제해결' 카테고리의 다른 글
갤럭시 안드로이드 블루투스 연결 확인 끄기 (0) 2023.05.29 갤럭시 워치 휴대폰 알람 연동 (0) 2023.05.06 fbprophet importing plotly failed. interactive plots will not work. (0) 2023.03.13 scikit-learn GridSearchCV ConvergenceWarning 끄기 (0) 2023.03.13 딜라이브 + ipTIME 인터넷이 안돼 (0) 2023.03.13