Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 462
от 11.07.2006, 18:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 341, Экспертов: 46
В номере:Вопросов: 2, Ответов: 4


Вопрос № 48287: Здраствойти госпожа програмисти (я только учусь етому ремеслу ) Помогите, мне в среде дос надо подключить драйвер миши(эсли ножно на примере, на С и Pascal) И если есть какието силки , как етим воспользуваца . Зарание спасибо....
Вопрос № 48306: Уважаемые эксперты! Cуществуют ли способы инициализации константных объектов, например типа string, в объявлении класса, кроме синтаксиса инициализации в конструкторе? Дело в том, что в проекте предополагается довольно большое количество стро...

Вопрос № 48.287
Здраствойти госпожа програмисти (я только учусь етому ремеслу )
Помогите, мне в среде дос надо подключить драйвер миши(эсли ножно на примере, на С и Pascal)
И если есть какието силки , как етим воспользуваца .
Зарание спасибо.
Отправлен: 06.07.2006, 00:25
Вопрос задал: Игарь (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Jeka911
Здравствуйте, Игарь!

Код в приложении:

setupmouse(); - инициализация
mshow(1) - показать курсор
mshow(0) - спрятать курсор
m_pos - устанавливается на прерывание в setupmouse()

не забудте подключить dos.h

Приложение:

---------
Шахтер - чемпион!!!

Ответ отправил: Jeka911 (статус: 6-ой класс)
Ответ отправлен: 06.07.2006, 03:07
Оценка за ответ: 5
Комментарий оценки:
Очень спасибо!!!

Отвечает: Physicist
Здравствуйте, Игарь!

Работа с мышью в ДОСе идет через прерывание 0x33, так что для быстрой работы все равно придется использовать ассемблер. Примерно работа идет так:
| mov ax,<номер функции>
| mov <другие регистры>,<параметры>
| int 33h
Первая ссылка, которую нашел в google по этой теме:
http://www.codenet.ru/progr/other/mouse.php

Нашел написанные когда-то для себя модули на Pascale (это часть моего ДОСовского GUI). Надеюсь, поможет.

Для примитивной работы (опрашивать изредка мышь, чтобы узнать, где она находится и какие клавиши нажаты) достаточно модуля IMouse.

Если хочется отслеживать каждое перемещение мыши - нужен таке модуль Drivers (он также позволяет отслеживать все нажатия клавиш).

В модуле Kernel приводится пример работы с этими модулями.

Если будешь переделывать на C - замени все inline-машинные коды на inline-функции с ассемблерными вставками.

Приложение:

Ответ отправил: Physicist (статус: 3-ий класс)
Ответ отправлен: 06.07.2006, 09:01
Оценка за ответ: 5


Вопрос № 48.306
Уважаемые эксперты!
Cуществуют ли способы инициализации константных объектов, например типа string, в объявлении класса, кроме синтаксиса инициализации в конструкторе?
Дело в том, что в проекте предополагается довольно большое количество строковых констант и хотелось бы объявить их в классе.
Отправлен: 06.07.2006, 06:33
Вопрос задал: Slin (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Melamed
Здравствуйте, Slin!
Как я понял, для вас вполне подойдет одна из следующих конструкций

const сhar[] = "anything";

В пространстве класса надо обявлять константы следующим образом:
static const char[] = "anything"

Или обявить все строковые константы в ресурсах. В этом случае упрощается локализация вашей программы, то есть перевод интерфейса на разные языки (русский/английски ;й например)

Ответ отправил: Melamed (статус: 2-ой класс)
Ответ отправлен: 06.07.2006, 11:39
Оценка за ответ: 5
Комментарий оценки:
Спасибо! Решил воспользоваться советом о ресурсах.
К сожалению, код подобный примеру не работает (компилятор Intel 9.1), выдает ошибку: data member initializer is not allowed на такую строку: static const char win_class[]="win_class";
Кстати, а почему в прирах нет имени константы?
Видимо, инициализация такого рода доступна только для интегральных типов.
Еще раз спасибо.

Отвечает: AndyC
Здравствуйте, Slin!
Нет. Для нестатических членов либо конструктор по-умочанию, либо инициализация конструктором в конструкторе класса. (Извините за тавтологию).
Вы хотите объявить или инициализировать константы в объявлении класса?

Объявление:
class obj
{
...
static const std::string member1;
static const std::string member2;
...
};
//-------

Реализация:
const std::string obj::member1("constatant string");
const std::string obj::member2("константная строка");

Примерно так.
Ответ отправил: AndyC (статус: 1-ый класс)
Ответ отправлен: 06.07.2006, 17:52
Оценка за ответ: 5
Комментарий оценки:
Спасибо! То, что я и хотел узнать!


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.34 от 01.06.2006
Яндекс Rambler's Top100

В избранное