声明SID Windows c ++

时间:2016-07-08 12:25:49

标签: c++ windows winapi sid

我试图将一个SID标识符传递给函数

myFunction(SID userSid) {}

我的种子是“S-1-5-11”,但我无法想象如何将SID传递给函数

PSID sid = "S-1-5-11";
myFunction(sid);
  

没有PSID的构造函数来_SID

1 个答案:

答案 0 :(得分:4)

SID是一个独特的类型。它是an opaque data structure(实现为C结构),而不仅仅是字符串的另一个名称。

您不能将字符串传递给需要SID形式参数的函数。您需要创建一个SID对象并传递它。

有许多API函数可以让您创建和操作SID;它们列在here

如果要从包含a valid SID的字符串创建SID,可以调用ConvertStringSidToSid函数。例如:

PSID psid;
BOOL bSucceeded = ConvertStringSidToSid(TEXT("S-1-5-11"), &psid);
assert(bSucceeded != FALSE);

// ... use the SID via the pointer

// once you are finished, free it:
LocalFree(psid);