2012/12/25 Ruslan Zakirov <[email protected]>

> Есть вариант заменить DWORD на U32 в описании типов аргументов и
> проверить, что потом оно совпадает с тем что либа использует на каждой
> платформе.
>

Там помимио DWORD куча замороченых типов :)


> Следующий вариант с TYPEMAP, ну не сотня же у вас типов. Саму карту
> можно своровать из perl.
>

Просто если новый тип добавится или ещё чего, это прийдётся ручками лезть
помимо кода и в typemap :) Ну или написать парсер на изменения мажорных
версий...

Или разбирать аргументы самому, но не обязательно как в Pipe.xs. Ведь
> любой аргумент можно определить как указатель на SV, а далее макросом
> или функцией сконвертить в нужный тип.
>
> bool do_something(priority)
>    SV* spriority
>    INIT:
>        DWORD priority = SV_TO_DWORD(spriority)
>    CODE:
>        RETVAL = do_something(priority)
>    OUTPUT: RETVAL
>
> Фактически ручная эмуляция typemap получается.
>
> Возможно еще есть 10ок вариантов, я мало знаю в этой области.


Оооо!! Спасибо! это мне кажется то что надо :) Как-то я не подумал про
такое!

-- 
Varyanick I. Alex
skype: cono..
[email protected]
-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить