Я пытался передать функции идентификатор SID
myFunction(SID userSid) {}
Мое семя "S-1-5-11", но я не могу понять, как передать SID в функцию
PSID sid = "S-1-5-11";
myFunction(sid);
Нет конструктора для PSID в _SID
Я пытался передать функции идентификатор 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);
myFunction(psid)
, я получаю «нет конструктора, подходящего для PSID для _ SID»
- person mpgn; 08.07.2016
SID
передается в функцию путем копирования. (Я не уверен, почему; вы обычно передаете эти объекты по указателям.) Здесь применяются стандартные правила C для работы с указателями. Вы бы разыменовали указатель и передали его функции: myFunction(*psid);
- person Cody Gray; 08.07.2016
Expression must be a pointer to a complete object type
- person mpgn; 08.07.2016
SID
по значению, вместо этого вам нужно передать его по указателю. Измените myFunction()
на параметр PSID
(также известный как SID*
): myFunction(PSID userSid) { ... }
затем вы можете передать переменную psid
: myFunction(psid);
- person Remy Lebeau; 08.07.2016
name of type not allowed _SID SID
- person mpgn   schedule 08.07.2016