Lyes Amazouz wrote: > I've wrote a C library where I redefined (with typedef) the "char" and I > gave it the name "my_char". Every things worked well when I gave constant > strings to my wrapped functions which takes a "my_char *" as argument (then > it is equivalent to give a char * argument). But when I have given a String > variable to one of my functions (I initialised a variable var = "" and gave > it to the finction), it returned me this: > > Expected argument 3 of type my_char *, but got String "" (TypeError) > > How can I do to tell SWIG that the "my_char" type is euivalent to the "char" > type? May I have a solution to make work my functions You are passing a C function that expects a 'my_char*' a Ruby string, which in C has the type VALUE. You need to apply a typemap that tells SWIG how to translate a ruby object into my_char*. Something roughly like: %typemap(in) my_char* "$1 = (my_char*)STR2CSTR($input);" This is the most basic conversion; a good typemap would probably also verify the ruby class of the passed-in argument, perhaps using SWIG's %typemap(check) Without wishing to be rude, this is fairly basic SWIG stuff. You might want to have another look at the manual. It is dense but quite comprehensive. In particular: http://www.swig.org/Doc1.3/Ruby.html#Ruby_nn37 http://www.swig.org/Doc1.3/Ruby.html#Ruby_nn41 alex