OberonCore https://forum.oberoncore.ru/ |
|
Интерфейсный модуль для заголовка С https://forum.oberoncore.ru/viewtopic.php?f=2&t=2264 |
Страница 1 из 1 |
Автор: | Роман М. [ Пятница, 22 Январь, 2010 19:16 ] |
Заголовок сообщения: | Интерфейсный модуль для заголовка С |
При попытке оформить сишный код Код: 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 ] |
Заголовок сообщения: | Re: Интерфейсный модуль для заголовка С |
Да. |
Автор: | Сергей Губанов [ Суббота, 23 Январь, 2010 00:52 ] |
Заголовок сообщения: | Re: Интерфейсный модуль для заголовка С |
Я обычно void* оформляю как INTEGER. |
Автор: | Созерцатель [ Суббота, 23 Январь, 2010 11:40 ] |
Заголовок сообщения: | Re: Интерфейсный модуль для заголовка С |
Сергей Губанов писал(а): Я обычно void* оформляю как INTEGER. ???
|
Автор: | Valery Solovey [ Суббота, 23 Январь, 2010 13:23 ] |
Заголовок сообщения: | Re: Интерфейсный модуль для заголовка С |
А это случаем не обычный процедурный тип? То есть, может так: Код: 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 ] |
Заголовок сообщения: | Re: Интерфейсный модуль для заголовка С |
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. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |