window程序求解
求增加需代码,并增加main使之可执行
使用时调用了CreatNamePipe,没有检查是否返回了INVALID_HANDLE_VALUE;也没有调用GetLastError检查是否返回了ERROR_ACDESS_DENIED。
使用时调用了CreateMutex,没有检查是否返回了NULLbn没有调用应添加检查返回值的代码,并处理异常情况。
void foo(){
BOOL fConnected;
LPTSTR lpszPipename=TEXT("\\\\.\\pipe\\mynamedpipe");
HANDLE hPipe;
hPipe=CreateNamedPipe(
lpszPipename,
FILE_FLAG_MESSAGE |
PIPE_READMODE_MESSAGE |
PIPE_WAIT,
PIPE_UNLIMITED_INSTANCES,
BUFSIZE,
BUFSIZE,
NMPWAIT_USE_DEFAULT_WAIT,
NULL);
fConnected=ConnectNamedPipe(hPipe,NULL)?
TRUE:(GetLastError()==ERROR_PIPE_CONNECTED);
/*.....*/
return 0;
}
[解决办法]
根据需要改呗,主要是增加对函数调用返回值的判断处理,没啥难的
main函数只需要调用foo就可以了