Портирую c++ либу писвашуюся изначально для Windows.
На данный момент существует полное компатибилити с C типами и также: port.h
в котором в зависимости от ОС (win, mac, linux), делаются typdef для всяких
DWORD, HANDLE и т.д.
В своём XS делаю:
#include "port.h"

Далее использую в XS:
bool do_something(priority)
   DWORD priority

в port.h имею для linux:
  typedef unsigned int   DWORD;

Но беда в том, что xsubpp не делает преобразований к базовым типам
изначально и не проганяет код сквозь gcc -E и т.д. (ругается на отсутствие
типа в typemap)

Есть какие-то методики как такое разрулить (не хочется дулировать каждый
тип уже предусмотренный в port.h либы, дублировать также в typemap), или же
стоит делать так как сделано к примеру тут:
https://metacpan.org/source/JDB/Win32-Pipe-0.024/Pipe.xs

Т.е. без использование xsubpp'шных макросов (prototyping, OUTPUT, ...)
И приведения типов к перловым - руками, без typemap.

Спасибо.

-- 
Varyanick I. Alex
skype: cono..
[email protected]
_______________________________________________
Kiev-pm mailing list
[email protected]
http://mail.pm.org/mailman/listinfo/kiev-pm

Ответить