Я пытался передать функции идентификатор SID
myFunction(SID userSid) {}
Мое семя «S-1-5-11», но я не могу понять, как передать SID в функцию
PSID sid = "S-1-5-11";
myFunction(sid);
Нет конструктора для PSID для _SID
SID
является отличным тип. это непрозрачная структура данных (реализовано как структура C), а не просто другое имя для строки.
Вы не можете передать строку в функцию, которая требует SID
формальный параметр. Вам нужно создать SID
возразить и передать это.
Существует множество функций API, которые позволяют создавать и управлять SID; они перечислены Вот.
Если вы хотите создать 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);
Других решений пока нет …