Текущий архив: 2004.04.18;
Скачать: CL | DM;
ВнизНе компилится AdJustTokenPrivileges ... Найти похожие ветки
← →
Bestden (2004-02-10 14:36) [0]
Процедура выключения компа:
procedure TMain.ShutDown;
var ph: THandle;
tp, prevst: TTokenPrivileges;
rl: DWORD;
begin
OpenProcessToken(GetCurrentProcess,TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, ph);
LookupPrivilegeValue(Nil,"SeShutdownPrivilege", tp.Privileges[0].Luid);
tp.PrivilegeCount:=1;
tp.Privileges[0].Attributes:= 2;
AdjustTokenPrivileges(ph, FALSE, tp, SizeOf(prevst), prevst, rl);
ExitWindowsEx(EWX_SHUTDOWN or EWX_POWEROFF or EWX_FORCE,0);
end;
Всё вроде бы правильно, но компилятор ругается на ф-цию AdjustTokenPrivileges(ph, FALSE, tp, SizeOf(prevst), prevst, rl);
Пишет следующее:
[Error] offer.pas(51): Ambiguous overloaded call to "AdjustTokenPrivileges"
[Fatal Error] SD.dpr(6): Could not compile used unit "offer.pas"
Будьте добры помогите мне, а то мой процесс разработки программы заглох серьёзно и надолго...
Всё спасибо!
← →
VMcL © (2004-02-10 20:13) [1]F1 нажать религия не позволяет?
← →
Bestden (2004-02-10 20:45) [2]Зря ты так...
Во-первых, если бы мне помог хелп и Ф1, то я бы в инет и не вылазил!
Во-вторых, этот код не в одном факе написан и у других он компилится, но вот у меня не хочет...
В-третьих, ошибка эта указывает на ошибку распознания процедуры(в модуле Windows две функции AdjustTokenPrivileges, с разным четвертым параметром..), но процедура не моя а делфей(т.е. тех ребят что писали делфяхи)!!!
Вот поэтому я и прошу помоч...
А вот рилигия мне позволяет нажимать F1 !!!!!!!!!!!!!!!
← →
Vit@ly © (2004-02-10 21:16) [3]Что у тебя в 51 строке offer.pas
Выложи, посмотрим
← →
VMcL © (2004-02-10 22:44) [4]>>Bestden (10.02.04 20:45) [2]
Проверь внимательно типы параметров прототипов AdjustTokenPrivileges() и сравни с тем, что написано в твоем приложении. У меня на Д6, скомпилилось. Возможно в Д7 нужно где-то поюзать приведение типов.
>>Vit@ly © (10.02.04 21:16) [3]AdjustTokenPrivileges(ph, FALSE, tp, SizeOf(prevst), prevst, rl);
Он же привел код.
← →
VMcL © (2004-02-10 22:46) [5]>>Bestden (10.02.04 20:45) [2]
P.S. Ты не писал, что справка не помогла, => [1]
← →
Bestden (2004-02-10 23:38) [6]Так вот пишу теперь пишу :) не помогает справка!..., вот опять ты говоришь, что у тебя компилится, нифига не понимаю...
перепроверял типы, и часто делаемые ошибки по 10 раз минимум!
Справка объясняет, что не понятно с какой ей функцией работать и приводится пример, но у меня не как вроде в примере! У меня тип другой данных определенный...
Там может глюк в самой делфяхе, но может во мне :)
Там в общем в модуле Windows две процедуры с одним именем:=
function AdjustTokenPrivileges(TokenHandle: THandle; DisableAllPrivileges: BOOL;
const NewState: TTokenPrivileges; BufferLength: DWORD;
var PreviousState: TTokenPrivileges; var ReturnLength: DWORD): BOOL; external advapi32 name "AdjustTokenPrivileges";
function AdjustTokenPrivileges(TokenHandle: THandle; DisableAllPrivileges: BOOL;
const NewState: TTokenPrivileges; BufferLength: DWORD;
PreviousState: PTokenPrivileges; var ReturnLength: DWORD): BOOL; external advapi32 name "AdjustTokenPrivileges";
разница как видите в них только в элементе PreviousState !
Но я то посылаю этой функции определенный тип...., ну млин даж незнаю что делать!
Может кто поможет?
А то моя прога нашла целую ГОРУ предкновения!
Всем спасибо!
← →
Игорь Шевченко © (2004-02-11 11:44) [7]AdjustTokenPrivileges(ph, FALSE, tp, SizeOf(prevst), nil, rl);
← →
Bestden (2004-02-11 17:59) [8]Всем спасибо!!!
Свою проблему нашел сам :)
то [7]: до нахождения своей ошибки этот вариант никак не проходил...
Страницы: 1 вся ветка
Текущий архив: 2004.04.18;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.045 c