![]() |
допустим я пишу :
ExitWindowsEx(EWX_POWEROFF,1); или EWX_SHUTDOWN то винда не отрубается а начинает постоянно входить сама в себя:) появляется приглашение о входе итд и все это буде продолжаться пока совсем не ребутнусь... Сижу под 98ми компилю по Делфи 6 Обьясните плиз что не так? |
MF CAP
Как ни странно, но у меня всё работает... Правда Win2k, но это по идее это не имеет значения. |
наверно всетаки винда.....пора сносить :)
|
Цитата:
|
Guest
Очень интересно, как компилятор может повлиять на работу апишной функции? Или это было сказано к тому что у вас "всё пучком"? |
Повлиять на работу апишной функции? Запросто !
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-