[Moscow.pm] XS и Windows DWORD
Ruslan Zakirov
ruz на bestpractical.com
Вт Дек 25 11:47:51 PST 2012
2012/12/25 Alex Varyanick <q на cono.org.ua>:
> 2012/12/25 Ruslan Zakirov <ruz на bestpractical.com>
>>
>> Есть вариант заменить DWORD на U32 в описании типов аргументов и
>> проверить, что потом оно совпадает с тем что либа использует на каждой
>> платформе.
>
>
> Там помимио DWORD куча замороченых типов :)
Типа? Правда. Какие такие типы там?
В typemap у вас будет что-то такое:
DWORD T_U_LONG
http://perldoc.perl.org/perlxstypemap.html#Full-Listing-of-Core-Typemaps
В любой момент взяли и отказались и перешли на вариант, который вам понравился.
>> Следующий вариант с 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..
> q на cono.org.ua
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
--
Best regards, Ruslan.
Подробная информация о списке рассылки Moscow-pm