Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   ExitWindows (http://forum.oszone.net/showthread.php?t=30558)

MF CAP 11-07-2002 09:18 209104

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

ivank 11-07-2002 17:55 209105

MF CAP
Как ни странно, но у меня всё работает... Правда Win2k, но это по идее это не имеет значения.

MF CAP 11-07-2002 18:51 209106

наверно всетаки винда.....пора сносить :)

Guest 13-08-2002 00:39 209107

Цитата:

допустим я пишу :
ExitWindowsEx(EWX_POWEROFF,1);
или EWX_SHUTDOWN то винда не отрубается а начинает постоянно входить сама в себя появляется приглашение о входе итд и все это буде продолжаться пока совсем не ребутнусь... Сижу под 98ми компилю по Делфи 6 Обьясните плиз что не так?
Поставь WIN2000 и Delph5  и будет все пучком....по крайней мере у меня все работает....

ivank 13-08-2002 09:27 209108

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

Besso 13-04-2003 23:15 209109

Повлиять на работу апишной функции? Запросто !
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) проверьте описание функции
 б) опишите функцию и константы альтернативно
 в) дизассемблируйте вызов функции, убедитесь что передаются ИМЕННО ВАШИ ПАРАМЕТРЫ

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


Время: 11:59.

Время: 11:59.
© OSzone.net 2001-