2012/12/25 Ruslan Zakirov <span dir="ltr"><<a href="mailto:ruz@bestpractical.com" target="_blank">ruz@bestpractical.com</a>></span><br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Есть вариант заменить DWORD на U32 в описании типов аргументов и<br>
проверить, что потом оно совпадает с тем что либа использует на каждой<br>
платформе.<br></blockquote><div><br></div><div>Там помимио DWORD куча замороченых типов :)</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Следующий вариант с TYPEMAP, ну не сотня же у вас типов. Саму карту<br>

можно своровать из perl.<br></blockquote><div><br></div><div>Просто если новый тип добавится или ещё чего, это прийдётся ручками лезть помимо кода и в typemap :) Ну или написать парсер на изменения мажорных версий...</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Или разбирать аргументы самому, но не обязательно как в Pipe.xs. Ведь<br>
любой аргумент можно определить как указатель на SV, а далее макросом<br>
или функцией сконвертить в нужный тип.<br>
<br>
bool do_something(priority)<br>
   SV* spriority<br>
   INIT:<br>
       DWORD priority = SV_TO_DWORD(spriority)<br>
   CODE:<br>
       RETVAL = do_something(priority)<br>
   OUTPUT: RETVAL<br>
<br>
Фактически ручная эмуляция typemap получается.<br>
<br>
Возможно еще есть 10ок вариантов, я мало знаю в этой области.</blockquote><div><br></div><div>Оооо!! Спасибо! это мне кажется то что надо :) Как-то я не подумал про такое!</div><div><br></div><div>-- <br></div></div>Varyanick I. Alex<br>
skype: cono..<br><a href="mailto:q@cono.org.ua" target="_blank">q@cono.org.ua</a><br>
</div>