Неверное значение локальной переменной в MASM

Тема в разделе "WASM.BEGINNERS", создана пользователем ATX, 3 апр 2008.

  1. ATX

    ATX New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2006
    Сообщения:
    145
    Всем доброго времени суток, простите уж за ламмерский вопрос!

    В процедуре окна по WM_INITDIALOG задаю значение локальной переменной, при закрытии окна по WM_CLOSE значение моей переменной другое, в чем может быть трабла?

    Пример:
    --------------------------
    LOCAL MyVar:lol: WORD

    mov eax,uMsg
    .if eax==WM_INITDIALOG
    mov MyVar,1000h

    .elseif eax==WM_CLOSE
    mov eax,MyVar ;(вместо 1000h - значение левое получается)
    invoke EndDialog,hWin,NULL
    --------------------------


    Заренее спасибо!
     
  2. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    ATX
    кто-то по ней потоптался:)
    используй глобальную
    локальная нужна в пределах одного вызова
     
  3. ATX

    ATX New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2006
    Сообщения:
    145
    wsd
    Структура программы не позволяет , вернее можно конечно для каждого окна делать свою глобальную переменную, но это не красиво (
    Много окон создается, одно по верх другого...
    Мне нужно отслеживать какое окно в данный момент я вляется активным, древо может быть аж до 15 окошек )

    P.S. Как-то можно эту ситуацию обойти?
     
  4. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    ATX
    GetWindowLong/SetWindowLong + GWL_USERDATA или DWL_USER?
     
  5. KeSqueer

    KeSqueer Сергей

    Публикаций:
    0
    Регистрация:
    19 июл 2007
    Сообщения:
    1.183
    Адрес:
    Москва
    ATX
    По WM_ACTIVATE определять, какое акно активизировано и сохранять хендл или ид?
     
  6. ATX

    ATX New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2006
    Сообщения:
    145
    KeSqueer, q_q, спасибо!

    Шаманить можно по разному, но не хочется усложнять программу дополнительными надстройками (их уже не мало).
    Я хочу понять суть проблемы, от чего так происходит.
    Возможно нужно увеличить стек или сделать дугие настройки.
     
  7. LazzY

    LazzY New Member

    Публикаций:
    0
    Регистрация:
    6 мар 2006
    Сообщения:
    123
    ATX посмотрите в отладчике откуда берутся (ваши) локальные переменые