Registriert seit: 29. Mai 2002
37.621 Beiträge
Delphi 2006 Professional
|
Re: Unicode Eingabe einlesen
31. Jan 2007, 12:34
So. So sieht es bisher aus:
Code:
#include "stdafx.h"
#include <windows.h>
#include <Sddl.h>
#define INFO _T("Ausgabe der SIDs zu einem Principal\n")
#define QUERYINPUT _T("Principal (z.B. Benutzername): ")
DWORD GetStrSID(LPCWSTR server, LPCWSTR principal, LPWSTR &StrSID)
{
// SID ermitteln und in lesbare Form umwandeln
// in StrSID zurückgeben
PSID Sid;
DWORD cbSize = 0;
if (LookupAccountNameW(NULL, principal, NULL, &cbSize, NULL, NULL, NULL))
{
Sid = (PSID) new BYTE[256];
LookupAccountNameW(NULL, principal, Sid, &cbSize, NULL, NULL, NULL);
//ConvertSidToStringSidW(Sid, StrSID);
delete Sid;
}
return GetLastError();
}
int wmain(int argc, _TCHAR* argv[])
{
WCHAR principal[80], *StrSID = principal;
DWORD LastError;
wprintf(INFO);
wprintf(QUERYINPUT);
wscanf(L"%s", &principal);
wprintf(L"%s\n", principal);
LastError = GetStrSID(NULL, principal, StrSID);
if (LastError == 0)
{
wprintf(L"%s", StrSID);
}
else
{
wprintf(L"%i", LastError);
}
getchar();
return 0;
}
Allerdings kennt er die API-Funktion ConvertSidToStringSidW nicht, obwohl ich die Sddl.h eingebunden und die Advapi32.lib mit gelinkt wird. Benutzen tue ich das Visual Studio 2005.
Ich habe die Funktion erstmal auskommentiert, aber trotzdem kommt es noch zu einer AV beim Aufruf von if (LookupAccountNameW(NULL, principal, NULL, &cbSize, NULL, NULL, NULL)).
Michael Ein Teil meines Codes würde euch verunsichern.
|
|
Zitat
|