|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.01.2011, 18:44 | #11 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
Но ведь в самой системе есть же код на Си, который и отвечает за гудок, и в другой ОС (Линукс например). Все они имеют доступ к этому динамику. Таким образом, получается, что можно контролировать динамик на Си. Вот меня и интересует этот прямой доступ к динамику.
|
27.01.2011, 18:47 | #12 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
мало ли чего в ОС есть, не пустят тебя к портам, читай ссылку
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
27.01.2011, 18:50 | #13 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
Этот код на Си обращается к железу на очень низком уровне, более того, из привилегированного режима. Из обычного защищённого режима, непосредственное обращение к железу запрещено. Сколько раз нужно повторить, что нельзя воспроизвести звук в обход системы?) Всё равно придётся использовать функции Windows, хотя бы для того чтобы запросить необходимые привилегии для работы с железом.
|
27.01.2011, 18:50 | #14 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
да, я прочитал, просто уже после того, как написал сообщение. Тогда меня интересует, на каком языке программирования осуществляется управление этим динамиком? оно возможно на Си? или только на АСМ?
|
27.01.2011, 18:53 | #15 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
да хоть на бейсике. важен не язык, а кольцо защиты, на котором твой код будет работать
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
27.01.2011, 19:01 | #16 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
понятно. Меня тогда такой вопрос интересует: как именно компилировать код на Си, что бы он стал чистым машинным кодом, который компьютер сможет выполнить после загрузки? и можно ли так?
До этого подобное я выполнял вручную. Записывал сами машинные команды в загрузочный сектор дискеты, после чего, загружая компьютер с этой дискеты, он успешно выполнял код (печатал Hello World на экране). Так же можно на АСМ написать такой код, и скомпилировать в машинный... но вот можно ли такое на Си сделать? |
27.01.2011, 19:04 | #17 | ||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
и даже от уровня привилигей тоже не изменяет многое, лишь АПИ меняются(ну и можно действовать в его обход но зачем?)
Цитата:
дело ни в том на каком языке, а в том какие функции использовать. чтоб пикнуть, достаточно #include <windows.h> Beep(<два параметра>); вывод звука (любого, на динамики) чуть сложнее, зависит от конкретных целей. винапи по большей части процедурная именно ради совместимости с большей частью языков. Цитата:
1)загрузчик лучше всего на асме. 2)далее можно и си 3)тырк Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 27.01.2011 в 19:07. |
||
27.01.2011, 19:07 | #18 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
> но вот можно ли такое на Си сделать?
можно, чё ж нельзя. компилятор только надо взять совсем старый, досовый и не юзать никаких библиотек, рантаймов и прочих радостей жизни
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
27.01.2011, 19:09 | #19 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
ТС, скорее всего придется писать с асм вставками тогда, ибо в libc нет готовых функций на все случаи жизни. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
27.01.2011, 19:10 | #20 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
Ну а о каком ВинАпи может идти речь, когда компьютер загружает собственную программу?)
Я уже ранее читал, советуют загрузчик на АСМ писать, а далее код на Си можно... но значит все-таки можно и загрузчик на Си сделать? Я почти не знаю языка АСМ, и хочется сразу загрузить и выполнить программу, написанную на чистом Си. Так, для удовольствия. Хочется получить прямой доступ к машине |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Звук Звууууук Звук ... не рабоает звук.. | Zvuuuuk | Компьютерное железо | 2 | 22.01.2011 17:53 |
Тюнер для гитары в делфи. (Считывать с микрофона звук и выводить какой частоты этот звук). | Серего | Мультимедиа в Delphi | 8 | 12.01.2011 14:39 |
Звук 5.1 | Air | Свободное общение | 4 | 20.05.2010 11:29 |
Звук | xakkkkker | Мультимедиа в Delphi | 4 | 05.05.2008 08:13 |
звук и делфи, левый правый звук | snusmumric | Win Api | 2 | 29.10.2007 11:10 |