OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 19 Апрель, 2024 18:44

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




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Interface modules
СообщениеДобавлено: Четверг, 05 Июль, 2007 01:03 

Зарегистрирован: Понедельник, 29 Январь, 2007 19:00
Сообщения: 370
Откуда: Украина, Запорожье
Почему в интерфейсных модулях, используемых для связи с DLL, запрещено определение процедур?

Часто определённная в API библиотеки функция оказывается макросом на Си и в Блэкбоксе приходится использовать 2 модуля: один -- для native-функций, второй -- для макросов, реализованных в виде процедур.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 05 Июль, 2007 12:02 
Модератор
Аватара пользователя

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

Вообще-то, это касается только "целиком интерфейсных" модулей, когда после MODULE M [] указывается DLL, к которой подключаемся.
Вообще говоря, можно этого не делать, а указывать конкретную DLL прямо после заголовка процедуры (см. "Платформенно-зависимые особенности"). Тогда один модуль может описывать точки входа в несколько DLL - и, наверное, обычные процедуры тоже.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 05 Июль, 2007 13:37 

Зарегистрирован: Понедельник, 29 Январь, 2007 19:00
Сообщения: 370
Откуда: Украина, Запорожье
Интерфейсный модуль без ["dllname"] после имени модуля создать не получается... :( Может OM Inc. начали переход от "целиком интерфейсных" модулей к модулям с импортом отдельных процедур и не довели это до конца?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Четверг, 05 Июль, 2007 14:58 
Модератор
Аватара пользователя

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

Я, кстати, часто использую динамическую схему:

VAR
Proc-: PROCEDURE...;

а при инициализации - Kernel.LoadDll и Kernel.ThisDllObj.


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

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


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

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


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

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