关于class CShellExt : public IShellIconOverlayIdentifier 实现Overlay图标覆盖。其中服务端与客户端采用命名管道进行通讯。Xp下覆盖图标正常。Windows7下面覆盖图标出现丢失,经调试发现。Windows7下面会有多个Explorer进程来加载Overlay Dll 。导致客服端 连接管道失败。
现象:
m_hPipe = CreateFileA(
GetFileStatPipeName().c_str(), // pipe name
GENERIC_READ|GENERIC_WRITE,
0, // no sharing
NULL, // default security attributes
OPEN_EXISTING, // opens existing pipe
FILE_FLAG_OVERLAPPED, // default attributes
NULL); // no template fileGetLastError为2.请问大侠们如何解决这些问题。怎么去解决多个进程去同时访问管道?(Explorer如何做加锁呢?)