Здравствуйте, гость ( Вход | Регистрация )

> Lua number -> pointer cast
Cockney
сообщение 5.11.2019, 13:16
Сообщение #1


********

Master
Сообщений: 1.403
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 22547
Пользователь №: 16.156



Вопрос знатокам.

Есть ffi.cdef

Код

    struct image_descriptor {
           unsigned char* address;
           int width;
           int height;
           int length;
    };


далее

Код
local a,w,h,l = getimage()

local img_descr = ffi.cast("struct image_descriptor*")
img_descr.address = a


Получаем ошибку. Собственно, на сколько я понял, в документации написано : только number -> number, pointer -> pointer, иные варианты не допустимы.

Как выкручиваться ?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
DarkMaster
сообщение 14.11.2019, 16:38
Сообщение #2


***********

Модератор UOPilot
Сообщений: 9.743
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29657
Пользователь №: 11.279



А указателю ты =1 не присвоишь? Что-то мне подсказывает, что он все-таки обычный инт а не unsigned, ибо на 32 битах ограничение 2гб, а не 4. Если не присвоишь, то это вопрос доб оберток и safe функций. Ну типа круто, все такое, но в моем понимании, если ты лезешь писать на Си, то ты должен понимать, что делаешь и как ты вообще допустил туда -1. Для меня все-таки (пусть это с точки зрения терминологии ппц ваще как не правильно) обычное переименование, алиас или еще что-то. Если значение в памяти занимает одинаковое количество байт и способ записи не меняется, а названий (способов объявления) много, то для меня это становится некоторым сомнительным решенем, особенно когда вызывает конфликты кастов при том, что в памяти эти "разные" типы выглядят идентично. Не фанат я таких решений. Для меня это сокрытие от пользователя природы вещей и дистанцирование от базы. Все выше описанное личное мнение и не более того.

Сообщение отредактировал DarkMaster - 14.11.2019, 16:40


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения



Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 10.7.2025, 0:35
Designed by Nickostyle