Программирование на C и C++

Онлайн справочник программиста на C и C++

_OvrlnitEms, _OvrlnitExt

int cdecl far _OvrlnitEms(unsigned handle, unsigned page, unsigned num)

int cdecl far _OvrlnitExt(unsigned long address, unsigned long len)

Прототип: 
Описание: 

Эти функции не определены стандартом ANSI С. Они являются специфичными только для DOS.

Функция _OvrInitEms() подготавливает отображаемую память (expanded), если таковая имеет­ся, для ее использования менеджером оверлеев. Значением handle должен быть действительный EMS-дескриптор, либо же его величиной может быть 0. В последнем случае менеджер оверлеев просто выделяет свою собственную память. Значение page является содержательным только для ненулевых значений параметра handle. В этом случае он указывает на первую страницу памяти, используемую для обмена. Величина len задает число страниц, которые будут использоваться ме­неджером оверлеев. Эта функция возвращает 0 в случае успеха и ненулевое значение — в против­ном случае.

Функция _OvrInitExt() подготавливает расширенную память (extended), если таковая имеется, для ее использования менеджером оверлеев. Величина address определяет начальный адрес расши­ренной памяти. Если address равен 0, то функция определит начальный адрес. Величина len опре­деляет, сколько байт памяти будет использоваться. Если эта величина равна 0, то менеджер овер­леев может использовать всю расширенную память. Данная функция возвращает 0 в случае успеха и ненулевое значение — при возникновении ошибки.

Пример: 
Следующая программа инициализирует всю расширенную память для использования менедже­ром оверлеев:
#include <dos.h>
#include <stdio.h>
int main(void)
{
int result;
result = _OvrInitExt(NULL, 0);
if (result) printf("Cannot use extended memory for overlays.");
return 0;
}

Смешанные функции