in reply to interface perl to C++ code with SWIG, re: void pointers?
That works just fine and outputs '42'.################ package FOO; use strict; use warnings; use Inline CPP => Config => BUILD_NOISY => 1, ; use Inline CPP => <<'EOC'; int version(void * p) { return 42; } EOC my $sv = 'whatever'; my $obj = bless \$sv, 'FOO'; print $obj->version(); ################
or, if you want to call the sub from perl as "version":################ package FOO; use strict; use warnings; use Inline CPP => Config => INC => '/path/to/include', LIBS => '-L/path/to/library -lmy_lib', BUILD_NOISY => 1, ; use Inline CPP => <<'EOC'; #include <my_lib.h> int wrap_version(SV * p) { return version(p); } EOC my $sv = 'whatever'; my $obj = bless \$sv, 'FOO'; print $obj->wrap_version(); ################
I think SWIG should be capable of providing the same result.################ package FOO; use strict; use warnings; use Inline CPP => Config => PREFIX => 'wrap_', INC => '/path/to/include', LIBS => '-L/path/to/library -lmy_lib', BUILD_NOISY => 1, ; use Inline CPP => <<'EOC'; #include <my_lib.h> int wrap_version(SV * p) { return version(p); } EOC my $sv = 'whatever'; my $obj = bless \$sv, 'FOO'; print $obj->version(); ################
|
|---|