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

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


Информационный Канал Subscribe.Ru

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

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

Выпуск № 144
от 06.07.2005, 01:24

Администратор:Калашников О.А.
В номере:Вопросов: 4, Ответов: 7


Вопрос № 22878: Привет! Ответьте пожалуйста. Меня интересует тема написания драйверов. Что для этого нужно. В смысле: какие бибилиотеки (где взять), какие операторы или зарезервированные слова. Сам исходник драйвера. Не большой, но чтобы раскрывал осно...
Вопрос № 22889: здрасьти! я опять с вопросами про fputs() и указатели на структуру 1) вы немножко не поняли вопрос. привожу пример еще конкретнее: printf("stupid question "); и fputs("stupid question ");. так вот по каким крите...
Вопрос № 22910: Dobrii den vsem ekspertam Spasibo za preznii otvet Tsechoev Bagaudinu ,DSota,Алексей Белоусов , yatagan Est zada4a!! Daetsya massiv i v nem vibrasivayutsya vse 4isla kotorie povtoryayuts'a Pomogite naiti oshibki<br...
Вопрос № 22913: bsa"d Dobrii vever !! Spasibo za proslii otvet !!! Pomogite naiti oshibki !!! Est massiv i iz nego v drugoi kudayu te 4isla kotorie ne povtoryayuts'a v pervom s pomosh'yu funkcii ne mogu ponyat' v 4em delo...

Вопрос № 22.878
Привет!
Ответьте пожалуйста. Меня интересует тема написания драйверов. Что для этого нужно.
В смысле: какие бибилиотеки (где взять), какие операторы или зарезервированные слова.
Сам исходник драйвера. Не большой, но чтобы раскрывал основы написания.
Какие виды драйверов бывают.
Спасибо большое.
Отправлен: 30.06.2005, 02:07
Вопрос задал: Terechov_Terenti_Alexandrovitch (статус: Посетитель)
Всего ответов отправлено: 2

Отвечает: DSota
Здравствуйте, Terechov_Terenti_Alexandrovitch!

1. Для написания если под Виндовс - то только DDK или NumegaDriverStudio... Под ДОС можно написать на любом СИ, там только придеться данные "вручную" контролировать...
2. DDK можно скачать на сайте Микрософта... Зарезервированных слов нет, все пишется, как на обычном Си.

Основы написания - в том-же DDK есть очень много примеров самых различных драйверов для самых различных устройств.

Бывают драйвера Блочные и Символьные.
По другому разделению они бывают Драйвера режима ядра, Драйвера виртуальных устройств.
И еще по другому разделению: Бывают реального режима (все для доса), Для Win95 и Win3x, WDM драйверы (NT4,W98,w2000...)

---------
Открыть глаза навстречу солнцу.
Ответ отправил: DSota (статус: Практикант)
Отправлен: 30.06.2005, 08:28
Оценка за ответ: 5
Комментарий оценки:
Спасибо.

Отвечает: Jadd
Здравствуйте, Terechov_Terenti_Alexandrovitch!
Вообще для написнаия дров понадобится DDK (Driver Developers Kit) от билли. Скачать его можно на его же сайте. В нем же и примеры и доки. Где-то в сети пробегала книжка на эту тему. Поищи в ослике, там точно есть.
---------
Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Студент)
Отправлен: 30.06.2005, 10:14
Оценка за ответ: 3
Комментарий оценки:
Спасибо.
Билли это наверно очень знаменитый человек, но я его не знаю и где он живет тоже для меня загадка.

ослик - думаю это не ослик Иа из мультика?
Спасибо за ответ!!!
Но где взять сами библиотеки? Адрес?
И что такое ослик?
Билли это кто или что???


Вопрос № 22.889
здрасьти!
я опять с вопросами про fputs() и указатели на структуру

1) вы немножко не поняли вопрос. привожу пример еще конкретнее:
printf("stupid question "); и fputs("stupid question ");. так вот по каким критериям выбирают printf() вместо fputs() или наоборот (ну или scanf() и fgets() )?
вопрос _не_ чем отличается printf(0 от fputs() ...

2) да уж про указатели на структуру вы точно ничего не поняли. (еще бы! я сам не понял)...
объясняю вопрос еще раз:
допустим есть две структуры одна с пятью полями, а другая с шестью и есть функция, которая для совместимости принимает указатели на эти структуры, но скорроктированные на структуру у которой три поля.

так вот вопрос в том почему эта функция внутри своего тела может обращаться к полям переданной структуры? (т.е. к полям структуры, у которой КАК ДУМАЕТ ФУНКЦИЯ! три поля, но на самом деле у нее их 4 или 5)...

заранее спасибо
Отправлен: 30.06.2005, 10:57
Вопрос задал: ОчХочуНаучиться (статус: Посетитель)
Всего ответов отправлено: 1

Отвечает: DSota
Здравствуйте, ОчХочуНаучиться!

1. Именно fputs и fprintf (даже не printf) очень сильно отличаются:
именно printf - выводит символы в stdout, а fputs - в тот поток, куда укажешь...
Если нужен именно экран для вывода - то конечно лучше printf - он именно для этого и оптимизирован... Но если, ты еще при этом выводишь и в другие потоки (stderror к примеру) - то лучше использовать fputs - размер экзешника получиться меньше... Второй критерий: printf позволяет форматировать вывод - т.е. - выводить переменные и др., а fputs - тупо выведет введенную строку... Так-что, если выводишь еще и значения переменных - используй printf. И еще - printf - более универсальная функция...
Ну тут мысли про выбор нужной функции из группы: Посмотри, в чем их особенности, потом посомтри, какие их свойства тебе нужны в программе, и оставь те из ни, которые имеют нужные свойства и достаточны для программы...

2. Какая бы структура не была, ты обращаешься к цепочке байтов в памяти... Когда при вызове процедуры - ты создаешь в памяти массив байтов, размером со структуру из 6 или 5 записей... А в процедуре уже думаеться что эта цепочка байтов размером со структуру из 3 записей, она просто не знает, что на самом деле там есть еще данные. А указатель на самом деле представляет собой адрес в памяти - вот и все...

---------
Открыть глаза навстречу солнцу.
Ответ отправил: DSota (статус: Практикант)
Отправлен: 30.06.2005, 11:55


Вопрос № 22.910
Dobrii den vsem ekspertam

Spasibo za preznii otvet Tsechoev Bagaudinu ,DSota,Алексей Белоусов , yatagan

Est zada4a!!

Daetsya massiv i v nem vibrasivayutsya vse 4isla kotorie povtoryayuts'a

Pomogite naiti oshibki

Приложение:

Отправлен: 30.06.2005, 17:14
Вопрос задал: Natan_shimonov (статус: Посетитель)
Всего ответов отправлено: 3

Отвечает: Azat
Здравствуйте, Natan_shimonov!
Чтобы исправить ошибку:
1. void main() и void fun_arr(int arr1[],int arr2[]); нужно поменять местами.
2. в fun_arr(int arr1[],int arr2[]); Вы используете переменные u и i. Но подпрограмме эти переменные не передаются.
Вы должны изменить fun_arr(int arr1[], int arr2[]); в fun_arr(int arr1[], int arr2[], int u, int i);
Соответственно добавив эти переменные туда, где вызывается подпрограмма.
Тогда ошибки при компиляции исчезнут.
Но алгоритм программы программы работает не правильно.
Если я Вас правильно понял, то в ответе должно получиться следующее: 17 13 0 15 6 9 12 5
Вот код программы, который удаляет повторяющиеся числа из массива (см. приложение).
Будут вопросы - пишите.
e-mail: azat-yar@mail.ru
Удачи!

Приложение:

Ответ отправил: Azat (статус: 3-ий класс)
Отправлен: 30.06.2005, 19:30
Оценка за ответ: 5

Отвечает: igor87
Здравствуйте, Natan_shimonov!
Может объяснишь, что за прога такая, а... особенно функция main - это вообще.Далее, где ты учил С? Серьезно, очень интересно. Две функции с одним именем и с одинаковыми параметрами. Где ты такое видел??? Здесь вторую fun_arr надо загнать в первую fun_arr , тем более там всего одна строчка. И зачем у первой fun_arr после объявления функции стоит точка с запятой. Еще, зачем в качестве параметров передаются массивы? Которые, к тому же, передаются не так, да и к тому же ты их потом задаешь в функции. В итоге получаем, что программа сводится к одной функции, а зачем на создавать дополнительную функцию если main пустая, а не зачем, значем рем все fun_arr и пихаем все в main.

PS Если ты не создавал 2 функции fun_arr, а первое - это обявление, то почитай про объявление и реализацию функций, а также про передачу массивов в качестве пераметров функции.

Приложение:

Ответ отправил: igor87 (статус: 2-ой класс)
Отправлен: 30.06.2005, 23:22

Отвечает: Danil
Здравствуйте, Natan_shimonov!
Вероятно, имелось в виду вот что (смотрите приложение). Кроме того не объявлены локальные переменные u и i в функции fun_arr. Если надеетесь, что в функции fun_arr будут видны переменные, объявленные в main, то ошибаетесь.
Удачи! Спрашивайте, если еще что-то непонятно.

Приложение:

Ответ отправил: Danil (статус: 1-ый класс)
Отправлен: 01.07.2005, 10:50


Вопрос № 22.913
bsa"d

Dobrii vever !!
Spasibo za proslii otvet !!!

Pomogite naiti oshibki !!!

Est massiv i iz nego v drugoi kudayu te 4isla kotorie ne povtoryayuts'a v pervom s pomosh'yu funkcii

ne mogu ponyat' v 4em delo

Zaranue spasibo

Приложение:

Отправлен: 30.06.2005, 18:37
Вопрос задал: Natan_shimonov (статус: Посетитель)
Всего ответов отправлено: 1

Отвечает: Tsechoev Bagaudin
Здравствуйте, Natan_shimonov!
Да уж. Короче говоря много чего тебе еще учить. Могу посоветовать книжку Липпмана "С++ для начинающих". А для начала запомни две вещи.
1. Если программа должна исполняться, то там обязательно должна быть функция main из которой вызывается все остальное.
2. Нельзя переобъявлять, передаваемые параметры (переменные) внутри самой функции.
Удачи!

Приложение:

---------
Есть только одно зло - невежество, и только одно благо - знания

Ответ отправил: Tsechoev Bagaudin (статус: 6-ой класс)
Отправлен: 01.07.2005, 01:15
Оценка за ответ: 5


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

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

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

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

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


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


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.cplus
Отписаться
Вспомнить пароль

В избранное