Объявить SID Windows C++

Я пытался передать функции идентификатор SID

myFunction(SID userSid) {}

Мое семя "S-1-5-11", но я не могу понять, как передать SID в функцию

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

Нет конструктора для PSID для _SID

1 ответ

Решение

SID это отличный тип. Это непрозрачная структура данных (реализованная как структура C), а не просто другое имя для строки.

Вы не можете передать строку в функцию, которая требует SID формальный параметр. Вам нужно создать SID возразить и передать это.

Существует множество функций API, которые позволяют создавать и управлять 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);
Другие вопросы по тегам