0

我一直在尝试使用微软代码创建一个命名管道:

http://code.msdn.microsoft.com/windowsdesktop/CppNamedPipeClient-a88eb958

我还从其他地方获取了安全令牌:

SECURITY_ATTRIBUTES sa;
    sa.lpSecurityDescriptor = (PSECURITY_DESCRIPTOR)malloc(
        SECURITY_DESCRIPTOR_MIN_LENGTH);
    InitializeSecurityDescriptor(sa.lpSecurityDescriptor, 
        SECURITY_DESCRIPTOR_REVISION);
    // ACL is set as NULL in order to allow all access to the object.
    SetSecurityDescriptorDacl(sa.lpSecurityDescriptor, TRUE, NULL, FALSE);
    sa.nLength = sizeof(sa);
    sa.bInheritHandle = TRUE;

我想在我的 ip 上声明服务器而不是本地,以便它可以被 Intranet 上的其他电脑访问:

#define SERVER_NAME         L"10.12.13.122" ("." works)
#define PIPE_NAME           L"SamplePipe"
#define FULL_PIPE_NAME      L"\\\\" SERVER_NAME L"\\pipe\\" PIPE_NAME

以前有没有人为 C++ 声明过这个?这是拒绝创建命名管道...

4

1 回答 1

1

0x7B 是 ERROR_INVALID__NAME。“管道服务器无法在另一台计算机上创建管道,因此 CreateNamedPipe 必须使用句点作为服务器名称,如以下示例所示 \\.\pipe\PipeName”:请参阅MSDN。不要忘记将字符串文字的反斜杠加倍。

于 2013-11-11T11:22:02.697 回答