Mam niestandardową implementację tabeli mieszanianapisane w C dla aplikacji, którą tworzę. Teraz chcę utworzyć opakowanie dla niego w swig, aby móc mapować je na rodzime typy, takie jak „dict” w Pythonie. Chcę móc napisać pojedynczy plik interfejsu, którego mogę używać zarówno dla Perla, jak i Pythona. Przede wszystkim chcę wiedzieć, czy jest to możliwe, czy też powinienem to zrobić indywidualnie dla każdego Pythona i Perla?
Odpowiedzi:
0 dla odpowiedzi № 1Jest to możliwe przy użyciu jednego pliku implementacyjnego. W zależności od złożoności implementacji, może to być tak proste, jak:
%module my_hash
%inline %{
#include "my_hash.h"
%}
I generowanie kodu interfejsu za pomocą:
swig -python my_hash.i
swig -perl my_hash.i
Jeśli musisz napisać dowolne niestandardowe mapy typów, być może będziesz musiał użyć #ifdef SWIGPYTHON
lub #ifdef SWIGPERL
określić specyficzny dla języka kod w definicji interfejsu.