创建MessageQueue时的非法路径名

时间:2016-09-22 09:08:03

标签: c msmq

你好我是MSMQ的新手,

有一些C ++组件我想通过Microsoft Message Queue连接它们。 使用https://msdn.microsoft.com/en-us/library/ms711416(v=vs.85).aspx中的函数。我想创建一个新的Message Queue。

我打电话给这个函数:

SECURITY_DESCRIPTOR securityDescriptor;
CreateSecurityDescriptor(&securityDescriptor);
WCHAR wszOutFormatName[256];
DWORD dwOutFormatNameLength;

CreateMSMQQueue(L"DIRECT=OS:.\\PRIVATE$\\MyQueue", &securityDescriptor, wszOutFormatName, &dwOutFormatNameLength);

CreateSecurityDescriptor创建名称为Default SecurityDescriptor。如果需要,我可以发布代码。

但创建失败,错误代码为MQ_ERROR_ILLEGAL_QUEUE_PATHNAME。这意味着:

  

PROPID_Q_PATHNAME包含非法的消息队列路径名字符串。

L"DIRECT=OS:.\\PRIVATE$\\MyQueue"有什么问题? 我来自https://msdn.microsoft.com/en-us/library/ms700996(v=vs.85).aspx

我很感激任何帮助。

1 个答案:

答案 0 :(得分:0)

您只能使用格式名称引用现有队列 您无法使用一个创建新队列 改为使用路径名。

Difference between Path name and Format name when accessing MSMQ queues