From: William S F. <ws...@fu...> - 2008-06-27 21:15:59
|
Ole Kristian Støver Hofstad wrote: > > We're trying to map c++ pointers to java arrays with the typemaps in > arrays_java.i. We've included > > %include "arrays_java.i"; > %apply int[ANY] {int *}; > > in our interface file, but get multiple errors when compiling: > > error C2065: 'arg2_size' : undeclared identifier > error C2065: 'arg3_size' : undeclared identifier > .. > .. > error C2065: 'arg8_size' : undeclared identifier > error C2065: 'result_dim0' : undeclared identifier > > When we look inside the generated _wrap.cxx file, there are no > declaration of these identifiers before usage (as the error says). This > is really a crucial part of our wrapper, so hopefully there are some > sain explanation to this. > The line of code is trying to check that you have supplied the correct array size. But as you are using 'ANY' as the array size, it doesn't really know what to use, thus the undefined variable. Try: %apply int[] {int *} which then omits the array size check as the typemap for int[] cannot know how big the array is going to be. If you know how big your array is expected to be and you want to avoid possible buffer overruns, write your own typemap based on the int[ANY] one (it's in typemaps.i within a macro). William |