· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.WIN32 —› API в цикле REPT и WHILE

Посл.отвђт Сообщенiе


Дата: Окт 7, 2003 11:39:35

В цикле REPT и WHILE, пытаюсь вызвать API. Кол - во итераций небольшое 10 - 15. Либо компилятор долго компилирует, либо вобще не работает прога. Эта проблема
только у меня или ещё у кого то такое было?


Дата: Окт 7, 2003 11:54:53

че то не понял. у тебя проблема при компиляции или при выполнении?


Дата: Окт 7, 2003 19:58:03

Пример в студию


Дата: Окт 8, 2003 01:53:23 · Поправил: Sk. Inc.

Я всегда while использую, но таких проблем небыло.
Попробуй обновить или переустановить компилятор, может в нем что-то испортилось (от вирусов, например).


Дата: Окт 8, 2003 19:29:53

Kba3iM0go
#define s0(x) ""
#define s1(x) s0(x)s0(x)s0(x)s0(x)s0(x)s0(x)s0(x)s0(x)#define s2(x) s1(x)s1(x)s1(x)s1(x)s1(x)s1(x)s1(x)s1(x)
#define s3(x) s2(x)s2(x)s2(x)s2(x)s2(x)s2(x)s2(x)s2(x)
#define s4(x) s3(x)s3(x)s3(x)s3(x)s3(x)s3(x)s3(x)s3(x)
#define s5(x) s4(x)s4(x)s4(x)s4(x)s4(x)s4(x)s4(x)s4(x)
#define s6(x) s5(x)s5(x)s5(x)s5(x)s5(x)s5(x)s5(x)s5(x)
#define s7(x) s6(x)s6(x)s6(x)s6(x)s6(x)s6(x)s6(x)s6(x)
#define s8(x) s7(x)s7(x)s7(x)s7(x)s7(x)s7(x)s7(x)s7(x)
#define s9(x) s8(x)s8(x)s8(x)s8(x)s8(x)s8(x)s8(x)s8(x)
char s[]=s9(z);


Дата: Ноя 3, 2003 10:38:18

Понял в чём проблема! В начале цикла надо сохранять в стеке регистр ECX, а в конце его востанавливать, наверное API изменяют его содержимое (на очень большое), за счёт этого прога виснет.
Спасибо всем за ваши ответы!


Дата: Ноя 3, 2003 12:31:02

[ Chib777: ...наверное API изменяют его содержимое... ]

Не наверное, а совершенно точно. Гарантируется сохранение только esi, edi, ebp и ebx. Это, наверное, уже пора в FAQ добавлять.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.083