Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 1 марта!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Давно заметил, что всё-таки языки С/C++ это не самый лучший вариант программирования под Windows. Сейчас появилась масса более современных и удобных языков, например тот же Python - кроссплатформенный язык, очень легок в изучение. Я его изучил буквально за несколько дней по этому курсу - ссылка. Автор постарался, там видеоуроки на удивление легкие и понятные.

Функция Интерфейс с функциями DOS.

 
 
 
 Синтаксис          #include <dos.h>
 
                    int int86(int intr_num, union REGS *inregs,
 
                        union REGS *outregs, struct SREGS *segregs);
 
 
 
 Файл, содержащий   dos.h
 
 прототип
 
 
 
 Описание           Функция генерирует программное прерывание DOS 0x21
 
                    для   вызова  необходимой  функции  DOS.  Значение
 
                    inregs->h.al определяет требуемую функцию.
 
 
 
                    Кроме этого,     intdosx     копирует     значения
 
                    segregs->x.ds и  segregs->x.es  в  соответствующие
 
                    регистры,    перед    вызовом    прерывания.   Эта
 
                    возможность  позволяет   программам   использовать
 
                    дальние  указатели  или  большие модели памяти для
 
                    указания используемых для прерывания сегментов.
 
 
 
                    После возврата  из  прерывания,  функция  копируют
 
                    текущие  значения регистров в параметр outregs,  а
 
                    статус флага системного переноса  в  поле  x.cflag
 
                    параметра outregs.  Если флаг переноса установлен,
 
                    это означает что произошла  ошибка.  Кроме  этого,
 
                    данная  функция  восстанавливает  содержимое  DS и
 
                    заполняет   поля   segregs->es    и    segregs->ds
 
                    соответствующими значениями.
 
 
 
                    intdosx позволяет   вам   вызывать   функцию  DOS,
 
                    которая получает значение в DS, отличное от адреса
 
                    сегмента   данных   по  умолчанию,  и/или  которое
 
                    получает аргумент в регистре ES.
 
 
 
                    Примечание: параметры  inregs  и   outregs   могут
 
                    указывать на одну и туже структуру.
 
 
 
 Возвращаемое       Функция intodsx возвращает значение регистра AX после
 
 значение           завершения прерывания. Если флажок переноса
 
                    установлен (outregs-->x.cflag!=0),     то     есть
 
                    произошла  ошибка,  данная   функция   присваивает
 
                    глобальной переменной _doserrno код ошибки.
 
 
 
 Переносимость      Функция уникальна для DOS.
 
 
 
 Смотри также       bdos, bdosptr, geninterrupt, intdos, int86x,
 
                    int86, intr, segread.
 
 
 
 Пример:
 
       #include <stdio.h>
 
       #include <dos.h>
 
       /* удаление файла. При успешном завершении возвращает 0, иначе
 
          ненулевое значение */
 
       int delete_file(char near *filename)
 
       {
 
          union REGS regs;
 
          int ret;
 
          regs.h.ah = 0x41; /* удаление файла  */
 
          regs.x.dx = (unsigned) filename;
 
          ret = intdos(&regs, &regs);
 
          /* if carry flag is set, there was an error */
 
          return(regs.x.cflag ? ret : 0);
 
       }
 
       int main(void)
 
       {
 
          int err;
 
          err = delete_file("NOTEXIST.$$$");
 
          printf("Able to delete NOTEXIST.$$$: %s\n",
 
                  (!err) ? "YES" : "NO");
 
 
 
      }
 
 Вывод:
 
 
 
       Able to delete NOTEXIST.$$$: NO


<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS