Форум программистов «Весельчак У»
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
Начало
Наши сайты
Галерея
Весельчак У
Наша Вики
Хранилище
Проекты
Правила
Правила форума
Правила русского языка
Помощь
Поиск
Календарь
Почта
Войти
Регистрация
Форум программистов «Весельчак У»
>
Учимся программировать
>
ЧАВО
>
Темы для FAQ
>
FAQ_Borland C/C++
> Тема:
прерывания
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: прерывания (Прочитано 13967 раз)
0 Пользователей и 1 Гость смотрят эту тему.
direct
Гость
прерывания
«
:
24-02-2005 18:20 »
Доброго времени суток всем! Решил вспомнить как
писать проги под DOS
Вопрос такой: как функцию-обработчик
прерываний типа "void interrupt f(...)" сделать членом класса? Компилятор
сильно ругается:-)
Записан
RXL
Технический
Администратор
Offline
Пол:
Re: прерывания
«
Ответ #1 :
24-02-2005 20:53 »
Видимо потому, что обработчик прерывания отличается от обычной ф-ии.
Записан
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Alf
Гость
Re: прерывания
«
Ответ #2 :
24-02-2005 21:54 »
Давненько не доводилось обрабатывать прерывания в DOS... Насколько помнится, обработчик прерывания должен быть свободной функцией.
Если функция является членом класса, она получает помимо формальных параметров еще и скрытый указатель на экземпляр класса - this. Поэтому указатель на свободную функцию и указатель на функцию-член класса несовместимы по типам, даже если сигнатуры совпадают.
Возможно, получится сделать обработчиком прерывания статическую функцию-член класса, но не уверен на 100%. Документация от Borland C++ на этот счет довольно скудная, а то, что добывалось опытным путем, уже основательно позабыто.
Записан
Артем
Опытный
Offline
Пол:
Beware the wolf in sheep's clothing.
Re: прерывания
«
Ответ #3 :
25-02-2005 09:43 »
никак, direct
я не пробовал сделать это в билдере, но не думаю что в этом плане он отличается от вижуала.
на Visual 6, у меня не получилось
.
как мне кажется из-за проблем с указателем на эту функцию как члена класса.
Записан
baldr
Команда клуба
Offline
Пол:
Дорогие россияне
Re: прерывания
«
Ответ #4 :
25-02-2005 10:03 »
Артем, под Windows нету прерываний... Еще бы у тебя получилось под VC..
А вообще статическая функция может сработать.
Записан
Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
Артем
Опытный
Offline
Пол:
Beware the wolf in sheep's clothing.
Re: прерывания
«
Ответ #5 :
25-02-2005 10:43 »
Ладно, ладно глупость написал.
Сбило то что "Borland C", прочитал как Билдер...
....типа стыдно....
но я и статическую функцию пробовал, не работает.... ( в BORLANDе)
Записан
Pu
Большой босс
Offline
78
Re: прерывания
«
Ответ #6 :
25-02-2005 13:27 »
вообще-то статик функции ничем не отличаются от обычных глобальных функций, вот только нету им доступа к членам класса нестатическим. Так как можно их вызывать без создания объектов класса. Странно было бы обращаться к членам класса , когда они не существуют. Отсюда нет и смысла практически делать такую функцию членом класса. Выигрыш только в разделении пространств имен.
Должно работать , имхо.
Записан
Насколько я опытен? Достаточно, чтобы понимать, что дураков нельзя заставить думать по–другому, но недостаточно, чтобы отказаться от попыток это сделать.
(с) Артур Джонс
direct
Гость
Re: прерывания
«
Ответ #7 :
25-02-2005 18:41 »
Короче, все ООП коту под хвост, если работаешь с прерываниями?
А если обработчик на асемблере перекодить, фокус пройдет?
Записан
Migmile
Помогающий
Offline
Re: прерывания
«
Ответ #8 :
17-03-2005 15:47 »
А может и не нужно?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
Re: прерывания
«
Ответ #9 :
21-04-2006 20:24 »
(комент)
развить мысль - и в
ЧАВО
Записан
>FAQ ПО ПРОГР.
>ССЫЛКИ ПО ПРОГР.
>Правила"Неотложки"
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Форум программистов «Весельчак У»
>
Учимся программировать
>
ЧАВО
>
Темы для FAQ
>
FAQ_Borland C/C++
> Тема:
прерывания
Загружается...