OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Понедельник, 29 Апрель, 2024 10:20

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




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
СообщениеДобавлено: Четверг, 19 Август, 2010 06:06 

Зарегистрирован: Суббота, 06 Июнь, 2009 07:52
Сообщения: 329
Скачал из коллекции Zinna подсистему Free (Loading, displaying and saving many graphic image formats). При компиляции интерфейсного модуля для dll-ки получаю следующую ошибку
Код:
 MODULE FreeImageDll['FreeImage.dll'];

TYPE

OutputMessageFunction* = PROCEDURE[declaration followed by incorrect symbol] ["ccall"] (fif: IMAGE_FORMAT; msg: PChar);

PROCEDURE SetOutputMessage*["_FreeImage_SetOutputMessage@4"] (omf: OutputMessageFunction);
ВВ 1.5 процедурный тип поддерживает. Системный флаг ccall без кавычек ситуации не меняет. Модуль компилируется по-другому
Код:
 MODULE FreeImageDll['FreeImage.dll'];

TYPE

OutputMessageFunction* = PROCEDURE (fif: IMAGE_FORMAT; msg: PChar);

PROCEDURE ["ccall"] SetOutputMessage*["_FreeImage_SetOutputMessage@4"] (omf: OutputMessageFunction);

Может быть, так и надо делать? Но странно, ведь у разработчиков как-то компилировалось.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 19 Август, 2010 08:35 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Компилятор в ББ 1.6 поддерживает системные флаги в процедурных типах, в 1.5 - нет.
OglGLUT docu писал(а):
Модуль рассчитан на BlackBox версий 1.5 и 1.6. Отличие для этих версий заключается в следующем:
- все процедуры обратного вызова, передаваемые библиотеке GLUT, должны быть [ccall];
- компилятор BlackBox 1.5 не разрешает использование системных флагов в процедурных типах. Поэтому все параметры-процедуры, через которые передаются процедуры обратного вызова определены как обычные процедуры (без системного флага [ccall]). При этом фактические процедуры должны быть определены с этим флагом. Компилятор игнорирует разницу. При этом всё работает корректно, поскольку эти процедуры вызываются только библитотекой GLUT (т.е. как [ccall]);
- компилятор BlackBox 1.6 разрешает использование системных флагов в процедурных типах (и различает их наличие). Поэтому все параметры-процедуры, как и фактические процедуры обратного вызова, обязаны быть объявлены с флагом [ccall].
У Вас, как я понял, ситуация аналогичная.


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

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


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

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


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

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