Utilizando SWIG con métodos que toman std :: string como parámetro

Usé SWIG para ajustar mi clase de c ++. Algunos métodos tienen unaconst std::string& como parámetro. SWIG crea un tipo llamadoSWIGTYPE_p_std__string sin embargo, no puede simplemente pasar una cadena normal para esto al invocar el método en c #. El siguiente ejemplo es solo un ejemplo modificado que viene con el paquete SWIG.

public void setName(SWIGTYPE_p_std__string name) 
{
    examplePINVOKE.Shape_setName(swigCPtr, SWIGTYPE_p_std__string.getCPtr(name));
    if (examplePINVOKE.SWIGPendingException.Pending) throw examplePINVOKE.SWIGPendingException.Retrieve();
}

En mi archivo de interfaz solo tengo:

/* File : example.i */
%module example

%{
#include "example.h"
%}

/* Let's just grab the original header file here */
%include "example.h"

Y el método que se está envolviendo en C ++ es:

void Shape::setName(const std::string& name)
{
    mName = name;
}

¿Hay algún tipo de mapa de tipo que tengo que poner en el archivo de interfaz? Si es así, ¿cómo hago eso?

Respuestas a la pregunta(2)

Su respuesta a la pregunta