C++ 声明SID Windows c++;
我试图向函数传递SID标识符C++ 声明SID Windows c++;,c++,windows,winapi,sid,C++,Windows,Winapi,Sid,我试图向函数传递SID标识符 myFunction(SID userSid) {} 我的种子是“S-1-5-11”,但我不知道如何将SID传递给函数 PSID sid = "S-1-5-11"; myFunction(sid); 没有PSID到_SID的构造函数 是一种独特的类型。它是(作为C结构实现的),而不仅仅是字符串的另一个名称 不能将字符串传递给需要SID形式参数的函数。您需要创建一个SID对象并传递它 有多种API函数允许您创建和操作SID;它们被列出 如果要从包含的字符串创建SI
myFunction(SID userSid) {}
我的种子是“S-1-5-11”,但我不知道如何将SID传递给函数
PSID sid = "S-1-5-11";
myFunction(sid);
没有PSID到_SID的构造函数
是一种独特的类型。它是(作为C结构实现的),而不仅仅是字符串的另一个名称
不能将字符串传递给需要SID
形式参数的函数。您需要创建一个SID
对象并传递它
有多种API函数允许您创建和操作SID;它们被列出
如果要从包含的字符串创建SID
,可以调用该函数。例如:
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);
是一种独特的类型。它是(作为C结构实现的),而不仅仅是字符串的另一个名称
不能将字符串传递给需要SID
形式参数的函数。您需要创建一个SID
对象并传递它
有多种API函数允许您创建和操作SID;它们被列出
如果要从包含的字符串创建SID
,可以调用该函数。例如:
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);
需要传递指向SID-myFunction(SID*userSid)和PSID SID=“S-1-5-11”的指针这是一个错误-sid不是stringi get
类型不允许的名称_sidsid sid
需要传递指向sid-myFunction(sid*userSid)和PSID sid=“S-1-5-11”;-这是一个错误-sid不是stringi get类型的名称not allowed(不允许)sid sid
在我调用myFunction(psid)
i get`no constructor property for psid to sid`@mpgn是的,您的函数原型表明sid
结构是通过复制传递给函数的。(我不知道为什么;您通常通过指针传递这些对象。)标准C规则适用于处理指针。您将取消对指针的引用并将其传递给函数:myFunction(*psid)
我尝试了,但也得到了这个错误表达式必须是指向完整对象类型的指针
@mpgn:您不能按值传递SID
对象,您需要改为按指针传递它。更改myFunction()
以获取PSID
(又称SID*
)参数:myFunction(PSID userSid){…}
然后可以传递PSID
变量:myFunction(PSID)代码>在我调用myFunction(psid)
时,在断言之后,我得到了`没有适合psid的构造函数到SID`@mpgn`@Yes,您的函数原型表明SID
结构是通过副本传递给函数的。(我不知道为什么;您通常通过指针传递这些对象。)标准C规则适用于处理指针。您将取消对指针的引用并将其传递给函数:myFunction(*psid)
我尝试了,但也得到了这个错误表达式必须是指向完整对象类型的指针
@mpgn:您不能按值传递SID
对象,您需要改为按指针传递它。更改myFunction()
以获取PSID
(又称SID*
)参数:myFunction(PSID userSid){…}
然后可以传递PSID
变量:myFunction(PSID)代码>