leon
leon

Reputation: 5091

How do I marshall (in ideally in SWIG) a C# string[] to a C++ string*?

I am new in C# programming and trying to call wrap functions that is in C++.

In C++ I have a function of the following prototype

string* swap(string* ptr1, string*ptr2){
    //swap the array of string
    return ptr2;
}

How do I wrap this function into C# (ideally using SWIG, but not necessary)?

Upvotes: 2

Views: 1124

Answers (1)

Andy Thomas
Andy Thomas

Reputation: 86411

I had the same question for Java.

For Java, I did not find anything pre-packaged and trivial to use. I had to define my own typemaps.

In case you don't get any better answers for C#, you could start with the SWIG/C++ code described at SWIG: How to wrap std::string& (std::string passed by reference) .

You would need to replace references to Java types, JNI methods (those that include a reference to "jenv"), and "JavaThrowException."

These files from SWIG might also provide some relevant example code for C#:

  • swig/Lib/csharp/std_string.i
  • swig/Lib/csharp/typemaps.i

Upvotes: 1

Related Questions