2012/12/25 Alex Varyanick <[email protected]>: > 2012/12/25 Ruslan Zakirov <[email protected]> >> >> Есть вариант заменить 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.. > [email protected] > > -- > Moscow.pm mailing list > [email protected] | http://moscow.pm.org > -- Best regards, Ruslan. -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
