Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Глюк ReadConsole

7
13 сентября 2007 года
@pixo $oft
3.4K / / 20.09.2006
Решил написать программу,считающую произведение матриц.Естественно,надо вводимые строки переводить в числа.Написал процедуру перевода(использует EAX/EBX/ECX/EDX).Преобразует правильно,даже выводит сообщение.
Вдруг пошли глюки(когда глубже тестить начал).При вводе более 1 цифры(ширина матрицы) второе число(высота) просто не вводится-ReadConsole проскаивает без задержки,причём(вот ммм...плохая функция!!!) в EAX возвращает 1,а LastError не меняется(в общем случае-Error_Success)
Может,она закладывается на значения регистров или флагов?Или в чём дело,кто-нибудь объяснит?Код-чуть попозже
7
15 сентября 2007 года
@pixo $oft
3.4K / / 20.09.2006
Вот,собственно,и код
7
28 мая 2008 года
@pixo $oft
3.4K / / 20.09.2006
Так что,кто-нибудь может ответить?А то из-за этого глюка я положил на 2 программы,а ещё одна глючит:вводишь её число,она пишет,что надо,потом опять его запрашивает,но ввода НЕТ!Поэтому сразу вывод о том,что,мол,"введите число",и только при повторном запросе всё опять работает
16K
28 мая 2008 года
Alfá
59 / / 12.01.2007
Лучше отладчика тебе никто не ответит. А точно пересчитывает верно? Попробуй ввод без пересчета.
9.3K
03 июня 2008 года
iridum
175 / / 26.08.2007
Была похожая трабла, чюдес не бывает конечно, но мне помогло использование

 
Код:
Invoke GetStdHandle,Std_Input_Handle
 Mov hStdIn,EAX


перед каждым считыванием
7
03 июля 2008 года
@pixo $oft
3.4K / / 20.09.2006
Предлагаешь каждый раз перезапрашивать стандартный дескриптор ввода?
Он ведь постоянен и хранится у меня в ячейеке памяти(если ты читал код)
5.3K
04 июля 2008 года
Somebody
185 / / 24.12.2006
Особо вчитываться не стал, но, по-моему
 
Код:
Add ESP,4

как-то не в тему.
14
08 июля 2008 года
Phodopus
3.3K / / 19.06.2008
кто располагает переменные в секции .code?
И это у тебя вообще работает?! Какая винда - 98 что-ли?
Буфер сделай нормальным! Чего ты жадничаешь-то? Хочешь вводить от 1 до 3-х символов и говоришь что буфер 3 байта? А как насчет "197"\0xD\0xA ?? 5 байт знаешь ли! Вот и сделай буфер байт эдак 16.. Жалко что-ли??

да, и причина чего я это так распалился - код, код структурируй чтобы его читать было удобно другим, уважай своих собеседников. Метки в отдельных строках, виндовские константы пишутся только большими буквами, ассемблерный код - только одинаковыми буквами (или большими, или маленькими)
7
14 июля 2008 года
@pixo $oft
3.4K / / 20.09.2006
iridium:не помогло:(И чем я только его не пробовал…
Somebody:попробуй подумать(или хотя бы воспользуйся мозгом:)).Если у нас в стеке адрес возврата на точку выхода из программы(по тому адресу располагается
 
Код:
Push EAX
Call ExitProcess

(в этом роде),а выше–адрес возврата из процедуры Str2Num,тогда Add ESP,4 установит указатель стека на адрес процедуры выхода,и в таком случае программа просто завершится.Не так ли,м?
Phodopus:да ну!?
Тем более,этот код писался достаточно давно:)
14
14 июля 2008 года
Phodopus
3.3K / / 19.06.2008
Цитата: @pixo $oft
Тем более,этот код писался достаточно давно:)



ну так переписал бы, там ж не несколько тыщ строк..

5.3K
15 июля 2008 года
Somebody
185 / / 24.12.2006
Цитата: @pixo $oft
попробуй подумать(или хотя бы воспользуйся мозгом:))


Попробовал - сначало первое, потом второе, потом одновременно. Надо же, помогло! (А тогда времени не было просто разбираться в этом.)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог