Есть функция диалога EXAMPLE PROC... Этот диалог является наследником TabControl'a Я делаю универсальную функцию для добавления закладок TabControl'a, для этого мне нужно передать в функцию адрес процедуры EXAMPLE, но в любом случае(offset/addr) передаёться только смещение. Что посоветуете делать? Исходник в Atach'e
devillsd Посоветую передавать addr Tab1Name, а не Tab1Name при вызове Код (Text): invoke InitializeTab,hDlg,IDC_TAB,addr Tab1Caption,Tab1Name,addr EXAMPLE Не знаю, что там masm себе думает, но умудряется запихнуть в стэк двухбайтовый ax, чем перепоганивает всё содержимое стэка. А адрес процедуры EXAMPLE передаётся как раз правильно.
Не заметил в отладчике этот бок, кстати это у меня часто такое встречаетсья по не ясным причинам,иногда просто напишу заново, тот же код и всё работает! Что за бред?? А относительно Tab1Caption если передавать адресс то потом внутри вызываемой функции всё опять ставновиться на голову... Выходит что в локальной переменной функции будет адресс буфера с заглавием, и как ты потом возьмёш от него sizeof, при заполнении структуры закладки??
Сори походу до меня дошло, он при вызове функции пытаеться прочесть буфер=) А я сначала не понял в чём тут дело=) ну я и ....СТЫДНО
devillsd Мда... лихо Вы длины строк sizeof'ами определяете. Для определения длины строки нужно перебирать все её символы, пока не встретите нулевой символ. Для строк статической длины стоит объявлять константы. Так что ничего на голову не становится.
l_inc Действительно не становится! Всем примного благодарен! Все ошибки исправил(покрайней мере выявленные)!