Den Adressoperator hatte ich noch übersehen. Mit %S und ohne Adressoperator geht es jetzt. Und ich bekomme auch keine
AV mehr. Allerdings ist cbSize immer null:
Code:
DWORD GetStrSID(LPCWSTR server, LPCWSTR principal, LPWSTR &StrSID)
{
// SID ermitteln und in lesbare Form umwandeln
// in StrSID zurückgeben
PSID Sid;
DWORD cbSize = 0;
LookupAccountNameW(NULL, principal, NULL, &cbSize, NULL, 0, NULL);
if (cbSize > 0)
{
Sid = (PSID) new BYTE[256];
LookupAccountNameW(NULL, principal, Sid, &cbSize, NULL, 0, NULL);
wprintf(L"%i", cbSize);
//ConvertSidToStringSidW(Sid, StrSID);
delete Sid;
}
return GetLastError();
}
Zitat von
Olli:
Code:
#if(_WIN32_WINNT >= 0x0500)
in der sddl.h hattest du aber gesehen?
Nein, was bedeutet das für mich? Muss ich da noch irgendwas definieren?
Mann ist das kompliziert.