OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Воскресенье, 28 Апрель, 2024 23:38

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




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
СообщениеДобавлено: Пятница, 22 Январь, 2010 19:16 

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1177
Откуда: Мариуполь
При попытке оформить сишный код
Код:
void * cairo_get_user_data (cairo_t *cr, const cairo_user_data_key_t *key);

таким образом
Код:
PROCEDURE [ccall] cairo_get_user_data* (cr: Pcairo_t; key: Pcairo_user_data_key_t): POINTER;
я получил от компилятора сообщение, что не хватает TO (<тип>).

Я переписал его следующим образом:
Код:
TYPE
   Ptr* =  POINTER TO RECORD [untagged] END;
PROCEDURE [ccall] cairo_get_user_data* (cr: Pcairo_t; key: Pcairo_user_data_key_t): Ptr;


Правильно ли это?


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

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Да.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 23 Январь, 2010 00:52 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Я обычно void* оформляю как INTEGER.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 23 Январь, 2010 11:40 

Зарегистрирован: Вторник, 19 Январь, 2010 23:54
Сообщения: 136
Сергей Губанов писал(а):
Я обычно void* оформляю как INTEGER.
???


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 23 Январь, 2010 13:23 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1538
Откуда: Беларусь, Минск
А это случаем не обычный процедурный тип?
То есть, может так:
Код:
   TYPE
      cairo_t = INTEGER;
      cairo_user_data_key_t = RECORD END;
      (* void * cairo_get_user_data (cairo_t *cr, const cairo_user_data_key_t *key); *)
      cairo_get_user_data = PROCEDURE (cr : cairo_t; IN key : cairo_user_data_key_t);

И зачем [ccall]? Предполагается работать с DLL?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 25 Январь, 2010 15:37 

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1177
Откуда: Мариуполь
Valery Solovey писал(а):
А это случаем не обычный процедурный тип?
То есть, может так:
Код:
   TYPE
      cairo_t = INTEGER;
      cairo_user_data_key_t = RECORD END;
      (* void * cairo_get_user_data (cairo_t *cr, const cairo_user_data_key_t *key); *)
      cairo_get_user_data = PROCEDURE (cr : cairo_t; IN key : cairo_user_data_key_t);

И зачем [ccall]? Предполагается работать с DLL?

Именно так. С библиотекой libcairo.


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

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


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

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


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

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