我试图将一个SID标识符传递给函数
myFunction(SID userSid) {}
我的种子是“S-1-5-11”,但我无法想象如何将SID传递给函数
PSID sid = "S-1-5-11";
myFunction(sid);
没有PSID的构造函数来_SID
答案 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);