[Передача параметров функции] Подскажите как правильно передать

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

  1. devillsd

    devillsd New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2008
    Сообщения:
    131
    Есть функция диалога EXAMPLE PROC...
    Этот диалог является наследником TabControl'a
    Я делаю универсальную функцию для добавления закладок TabControl'a, для этого мне нужно передать в функцию адрес процедуры EXAMPLE, но в любом случае(offset/addr)
    передаёться только смещение. Что посоветуете делать?
    Исходник в Atach'e
     
  2. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    devillsd
    Посоветую передавать addr Tab1Name, а не Tab1Name при вызове
    Код (Text):
    1. invoke InitializeTab,hDlg,IDC_TAB,addr Tab1Caption,Tab1Name,addr EXAMPLE
    Не знаю, что там masm себе думает, но умудряется запихнуть в стэк двухбайтовый ax, чем перепоганивает всё содержимое стэка. А адрес процедуры EXAMPLE передаётся как раз правильно.
     
  3. devillsd

    devillsd New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2008
    Сообщения:
    131
    Не заметил в отладчике этот бок, кстати это у меня часто такое встречаетсья по не ясным причинам,иногда просто напишу заново, тот же код и всё работает! Что за бред??
    А относительно Tab1Caption если передавать адресс то потом внутри вызываемой функции всё опять ставновиться на голову...
    Выходит что в локальной переменной функции будет адресс буфера с заглавием, и как ты потом возьмёш от него sizeof, при заполнении структуры закладки??
     
  4. devillsd

    devillsd New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2008
    Сообщения:
    131
    Сори походу до меня дошло, он при вызове функции пытаеться прочесть буфер=) А я сначала не понял в чём тут дело=) ну я и ....СТЫДНО
     
  5. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    devillsd
    Мда... лихо Вы длины строк sizeof'ами определяете. Для определения длины строки нужно перебирать все её символы, пока не встретите нулевой символ. Для строк статической длины стоит объявлять константы.
    Так что ничего на голову не становится.
     
  6. devillsd

    devillsd New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2008
    Сообщения:
    131
    l_inc
    Действительно не становится!
    Всем примного благодарен! Все ошибки исправил(покрайней мере выявленные)!