Здравствуйте, bigdaddy, Вы писали:
B>А функция объявлена так: LookupPrivilegeName(lpSystem Pchar; LUID Int64; var lpName Pchar; var cbName Cardinal);
В C она объявлена как
BOOL LookupPrivilegeName(
LPCTSTR lpSystemName,
PLUID lpLuid,
LPTSTR lpName,
LPDWORD cbName
);
Обратите внимание, что второй параметр является указателем на LUID, а не непосредственным значением LUID. Это, кстати, объясняет, почему выдается ошибка о том, что привилегия не существует.
С другой стороны, третий параметр является указателем на строку, что эквивалентно просто Pchar (не var Pchar) в Delphi. Поэтому правильным объявлением функции в Delphi будет
LookupPrivilegeName(lpSystem:Pchar; var LUID:Int64; lpName:Pchar; var cbName:Cardinal);