Войти

Показать полную графическую версию : ExitWindows


MF CAP
11-07-2002, 09:18
допустим я пишу :
ExitWindowsEx(EWX_POWEROFF,1);
или EWX_SHUTDOWN то винда не отрубается а начинает постоянно входить сама в себя:) появляется приглашение о входе итд и все это буде продолжаться пока совсем не ребутнусь... Сижу под 98ми компилю по Делфи 6 Обьясните плиз что не так?

ivank
11-07-2002, 17:55
MF CAP
Как ни странно, но у меня всё работает... Правда Win2k, но это по идее это не имеет значения.

MF CAP
11-07-2002, 18:51
наверно всетаки винда.....пора сносить :)

Guest
13-08-2002, 00:39
допустим я пишу :
ExitWindowsEx(EWX_POWEROFF,1);
или EWX_SHUTDOWN то винда не отрубается а начинает постоянно входить сама в себя появляется приглашение о входе итд и все это буде продолжаться пока совсем не ребутнусь... Сижу под 98ми компилю по Делфи 6 Обьясните плиз что не так?

Поставь WIN2000 и Delph5  и будет все пучком....по крайней мере у меня все работает....

ivank
13-08-2002, 09:27
Guest
Очень интересно, как компилятор может повлиять на работу апишной функции? Или это было сказано к тому что у вас "всё пучком"?

Besso
13-04-2003, 23:15
Повлиять на работу апишной функции? Запросто !
unit ActiveX (D6):

 tagREGKIND = (REGKIND_DEFAULT, REGKIND_REGISTER, REGKIND_NONE);
 TRegKind = tagREGKIND;

 function LoadTypeLibEx(szFile: POleStr; regkind: TRegKind; out tlib: ITypeLib): HResult; stdcall;

и cмотрите что выходит:
 Sizeof(TRegKind) = 1 - следовательно компилятор забивает регистер AX, а не EAX - в итоге в EAX передаётся невесть что
Так что, MF CAP  
 a) проверьте описание функции
 б) опишите функцию и константы альтернативно
 в) дизассемблируйте вызов функции, убедитесь что передаются ИМЕННО ВАШИ ПАРАМЕТРЫ

в моём примере помогло дизассемблирование с последующим альтернативным описанием




© OSzone.net 2001-2012