ShowWindow = define_c_proc(user32, "ShowWindow", {C_INT, C_INT})
-- Если бы ShowWindow работала по правилам cdecl,
-- мы записали бы здесь "+ShowWindow"
if ShowWindow = -1 then
puts(1, "ShowWindow не найдена!\n")
end if
См. также:
c_proc, define_c_func, c_func, open_dll, platform_r.htm
define_c_var
Платформа:
WIN32, Linux, FreeBSD
Синтаксис:
include dll.e
a1 = define_c_var(a2, s)
Описание:
Выдаёт адрес переменной Си, загруженной в память. Аргумент a2 является адресом общей библиотеки .so Linux, FreeBSD или .dll Windows, выданным функцией open_dll(). Ряд s задает имя глобальной переменной Си, определенной внутри системной библиотеки. В переменной a1 будет содержаться значение адреса переменной s в памяти.
Комментарии:
Как только вы получили адрес переменной Си, и если вы знаете её тип, вы можете далее использовать подпрограммы peek() и poke(), чтобы считывать или записывать в памяти величину этой переменной.
Пример программы:
euphoria/demo/linux/mylib.exu
См. также:
c_proc, define_c_func, c_func, open_dll, platform_r.htm
dir
Синтаксис:
include file.e
x = dir(st)
Описание:
Выдаёт информацию о каталоге или о файле с именем st. Если такой каталог или файл не существует, выдаёт -1. Под Windows и DOS st может содержать символы догадок * и ?, что позволяет получать данные о нескольких файлах с похожими именами.
Выдаваемая информация похожа на ту, которую вы получаете по команде DIR под DOS. Ряд, формируемый функцией, содержит вложенные ряды (записи), каждый из которых описывает один файл или подкаталог.
Если в st задано имя каталога (директории, папки, фолдера), вы можете получить записи для "." и "..", точно так же, как и по команде DIR под DOS. Если же в st задано имя файла, тогда x будет иметь только одну запись, т.е. length(x) будет равна 1. Если в st содержатся символы догадок (шаблоны), вы можете получить многочисленные записи.
Каждая запись содержит имя, атрибуты файла и его размер, а также год, месяц, день, час, минуту и секунду последнего изменения. Вы можете обращаться к элементам записи с помощью следующих констант, определенных в библиотеке file.e:
global constant D_NAME = 1, -- имя
D_ATTRIBUTES = 2, -- атрибуты
D_SIZE = 3, -- размер
D_YEAR = 4, -- год
D_MONTH = 5, -- месяц
D_DAY = 6, -- день
D_HOUR = 7, -- час
D_MINUTE = 8, -- минута
D_SECOND = 9 -- секунда
Элемент атрибутов является строковым рядом, содержащим символы, выбранные из следующего перечня:
'd' -- каталог
'r' -- файл только для чтения
'h' -- скрытый файл
's' -- системный файл
'v' -- метка тома
'a' -- файл, подлежащий архивированию
Для обычного файла, без специальных атрибутов, в этом поле будет выдана пустая строка, "".
Комментарии:
Каталог высшего уровня, корневой, т.е. c:\, не содержит записей "." или "..".
Данная функция часто используется просто для проверки, существует ли заданный файл или каталог.
На платформе WIN32 в st могут содержаться длинные имена файлов или каталогов в любом месте полного пути.
На платформах Linux/FreeBSD в настоящее время доступен только атрибут 'd'.
DOS32: Имя файла, выдаваемое в элементе D_NAME, будет стандартным DOS-именем формата 8.3 (посетите Web-страницу Архива файлов, если вас интересует лучшее решение).
WIN32: Имя файла, выдаваемое в элементе D_NAME, будет длинным именем.
Пример:
d = dir(current_dir())
-- ряд d мог бы быть, например, равным:
{
{".", "d", 0 1994, 1, 18, 9, 30, 02},
{"..", "d", 0 1994, 1, 18, 9, 20, 14},
{"fred", "ra", 2350, 1994, 1, 22, 17, 22, 40},
{"sub", "d", 0, 1993, 9, 20, 8, 50, 12}
}
-- тогда d[3][D_NAME] было бы "fred"
Пример программы:
bin\search.ex
См. также:
wildcard_file, current_dir, open
display_image
Платформа:
DOS32
Синтаксис:
include image.e
display_image(s1, s2)
Описание:
Выводит в точке s1 на пиксельном экране 2-мерный ряд пикселов, описание которых содержится в s2. Аргумент s1 - двухэлементный ряд вида {x, y}. Аргумент s2 содержит ряды, каждый из которых представляет горизонтальную строчку значений цветов пикселов, которые необходимо включить на экране. Первый пиксел первого ряда расположен в точке s1. Это верхний левый пиксел. Все остальные пикселы расположены правее или ниже этого первого.
Комментарии: