OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Среда, 18 Июнь, 2025 23:02

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Неизвестный системный флаг?
СообщениеДобавлено: Вторник, 21 Октябрь, 2008 06:44 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Вот строчка из модуля HostPrinters, который импортирует модуль SYSTEM:
Код:
PROCEDURE [2] AbortHandler (dc: GDI32.Handle; error: INTEGER): INTEGER;

Есть такое благородное желание: понимать каждую закорючку в коде :)
Для процедур определены только два системных флага: code и ccal. Эти флаги имеют значения 1 и -10, соответственно.
Что означает [2] в заголовке проседуры :?:
Буду признателен за разъяснения


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Неизвестный системный флаг?
СообщениеДобавлено: Вторник, 21 Октябрь, 2008 07:19 

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 1982
Откуда: Узбекистан, Чирчик
А как же легендарное 16-страничное описание? Почему там такие вещи не описываются?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Неизвестный системный флаг?
СообщениеДобавлено: Вторник, 21 Октябрь, 2008 07:34 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Geniepro писал(а):
А как же легендарное 16-страничное описание? Почему там такие вещи не описываются?

Видимо, потому что:
Цитата:
SYSTEM не считается правильной частью языка Компонентный Паскаль

И всё-таки, не хотелось бы оставлять "белых пятен" в "чёрном ящике" :)
Работать приходится не с каким-то эфемерным языком, а с реальной системой, вместе с её модулем SYSTEM, пусть даже "неправильным".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Неизвестный системный флаг?
СообщениеДобавлено: Вторник, 21 Октябрь, 2008 08:04 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1437
Игорь Лоскутов писал(а):
Для процедур определены только два системных флага: code и ccal. Эти флаги имеют значения 1 и -10, соответственно.
Что означает [2] в заголовке проседуры :?:

Для процедур есть флаги code = 1, callback = 2, guarded = 8, noframe = 16, ccall = -10 и еще несколько неиспользуемых.
Флаг callback должен означать stdcall, но смысла в нем нет, поскольку и так все процедуры используют это соглашение.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Неизвестный системный флаг?
СообщениеДобавлено: Вторник, 21 Октябрь, 2008 08:14 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Trurl писал(а):
Для процедур есть флаги code = 1, callback = 2, guarded = 8, noframe = 16, ccall = -10 и еще несколько неиспользуемых.
Вот с этого места, пожалуйста, поподробнее :) . Интересует источник сведений.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Неизвестный системный флаг?
СообщениеДобавлено: Вторник, 21 Октябрь, 2008 08:29 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Исходники компилятора, например. Дайте поиск по исходникам (Info->Search In Sources).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Неизвестный системный флаг?
СообщениеДобавлено: Вторник, 21 Октябрь, 2008 08:37 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Евгений Темиргалеев писал(а):
Исходники компилятора, например.
Я это подозревал :wink: . Ну что ж, лучшая инфа по программе - это её исходники. OpenSource рулит :!:
Всем спасибо!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Неизвестный системный флаг?
СообщениеДобавлено: Вторник, 21 Октябрь, 2008 09:58 
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Просто некоторые модули среды писались ещё до того, как были введены "культурные" названия флагов. И задолго до того, как были открыты исходники среды.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Неизвестный системный флаг?
СообщениеДобавлено: Вторник, 21 Октябрь, 2008 18:59 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Илья Ермаков писал(а):
Просто некоторые модули среды писались ещё до того, как были введены "культурные" названия флагов. И задолго до того, как были открыты исходники среды.
Да, в исходниках присутствует некоторый "бардачок". Для начала я решил избавиться от устаревших интерфейсных модулей, которые к тому же не представлены своими исходниками. На сегодняшний день осталось только исключить KERNEL32.osf. Может сегодня успею. Но изменений очень много, поэтому логи не веду.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Неизвестный системный флаг?
СообщениеДобавлено: Вторник, 21 Октябрь, 2008 19:07 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Кстати, почему при сборке стандартного BB (по Docu DevLinker) размер икзешнега получается около 1,3 МБ, а не 85КБ у файла из дистибутива :?: ASPack'ом так не сожмёшь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Неизвестный системный флаг?
СообщениеДобавлено: Вторник, 21 Октябрь, 2008 19:18 
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Про KERNEL32 - они убраны в 1.6.

Про сжатие: так в DevLinker приведена строка линковки полностью статического случая.
А обычный ББ собран всего из 3 модулей: Kernel, HostFiles и StdLoader (в локализованной версии перед Kernel ставится ещё National). Всё остальное грузится динамически - это видно в Info->Loaded Modules...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Неизвестный системный флаг?
СообщениеДобавлено: Вторник, 21 Октябрь, 2008 19:28 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Илья Ермаков писал(а):
Про KERNEL32 - они убраны в 1.6.
Пусть, зато хоть исходники почитаю :) Делаю эту работу с учебной целью
Илья Ермаков писал(а):
Про сжатие: так в DevLinker приведена строка линковки полностью статического случая.
А обычный ББ собран всего из 3 модулей ... Всё остальное грузится динамически - это видно в Info->Loaded Modules...
Об этом я как-то не подумал. спасибо.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2025, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB