Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.02.2013, 08:28   #1
Mahin
Пользователь
 
Регистрация: 18.11.2009
Сообщений: 39
По умолчанию VC++ чтение загрузочной записи диска

Суть проблемы: нужно написать программу, читающую загрузочный сектор. по условию задания чтение должно производиться с использованием прерывания INT 25h. Есть пример с использованием заголовочных файлов dos.h и bios.h, собственно из этих заголовков берётся структура diskinfo_t, описанная в _defs.h, вот только в VS2010 такого заголовка нет, пробовал через Qt Creator, там есть bios.h, но нет defs.h, скачал от borland`а. ругается на строку "void far *buffer;". Собственно вопрос: а есть ли в VS2010 или Qt какой-нибудь аналог Borland`ового bios.h, или уже не заморачиваться и скачать Borland.
Mahin вне форума Ответить с цитированием
Старый 04.02.2013, 08:34   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вам надо качать компилятор для доса.
для виндоуза там совсем иначе.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 04.02.2013, 19:59   #3
Mahin
Пользователь
 
Регистрация: 18.11.2009
Сообщений: 39
По умолчанию

ок, для доса как-то не очень интересно делать, тогда с чего стоит начать копать вариант под винду?
Mahin вне форума Ответить с цитированием
Старый 04.02.2013, 20:19   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

у вас по условию задания должно применяться прерывание, что автоматически значит дос(прерывание 25h это сервис доса).

а по виндой все просто CreateFile с указанием нужного жесткого диска.
и далее ReadFile, читаем 512 байт.
и потом CloseHandle.
описание функций есть в msdn.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 04.02.2013, 20:33   #5
Mahin
Пользователь
 
Регистрация: 18.11.2009
Сообщений: 39
По умолчанию

спасибо, попробую оба варианта.
Mahin вне форума Ответить с цитированием
Старый 04.02.2013, 21:58   #6
frommars
Форумчанин
 
Регистрация: 02.07.2011
Сообщений: 144
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
у вас по условию задания должно применяться прерывание, что автоматически значит дос(прерывание 25h это сервис доса).

а по виндой все просто CreateFile с указанием нужного жесткого диска.
и далее ReadFile, читаем 512 байт.
и потом CloseHandle.
описание функций есть в msdn.
25h - это прерывание для прямого чтения с диска

использовать вот так
Код:
mov al,2
mov dx,0
mov cx,1
lea bx,my_buf
int 25H
pop dx
при желании, это код можно использовать и в VS
frommars вне форума Ответить с цитированием
Старый 04.02.2013, 22:02   #7
Perchik71
С++, Delphi
Форумчанин
 
Аватар для Perchik71
 
Регистрация: 24.11.2012
Сообщений: 495
По умолчанию


Тут конечно С++ раздел, ну да ладно.
что насчёт такого, я ввидел многие исходники
использующие всякого рода такие фичи.
Но, к сожалению это либо устарело, либо
моя винда не даёт совершить такие действия. прога улетает.
в Небеса.
Если помог, тут весы есть , Вам не сложно, а мне приятно.
Perchik71 вне форума Ответить с цитированием
Старый 04.02.2013, 22:32   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
при желании, это код можно использовать и в VS
прерывания в Win32 приложения недоступны, ибо процессор находится в защищенном режиме, и это прерывание имеет иную роль(а может и пусто)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 05.02.2013, 05:33   #9
frommars
Форумчанин
 
Регистрация: 02.07.2011
Сообщений: 144
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
прерывания в Win32 приложения недоступны, ибо процессор находится в защищенном режиме, и это прерывание имеет иную роль(а может и пусто)
http://www.rsdn.ru/forum/winapi/22683.hot
frommars вне форума Ответить с цитированием
Старый 05.02.2013, 07:27   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

там речь о Win98.
да и маразм это.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание в Linux загрузочной флешки или диска Window 7 Notan1310 Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) 1 05.11.2012 04:51
чтение сектора с диска 16milashka16 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 15.12.2011 10:42
Чтение с локального диска и из WEB mactepmac Общие вопросы Delphi 3 20.07.2011 14:28
Посекторное чтение и запись диска posmotret Qt и кроссплатформенное программирование С/С++ 1 04.07.2011 12:05
Чтение файлов с диска Wolf-alone Общие вопросы C/C++ 1 17.09.2008 10:05