valores pasar parametros otro objetos objeto metodos metodo mandar llamar funciones definicion como comando c# c++ swig

c# - pasar - Usando SWIG con métodos que toman std:: string como parámetro



pasar objetos como parametros en c# (1)

Estaba tratando de resolver esto yo mismo cuando encontré tu pregunta.

Necesitas incluir

% incluye "std_string.i"

en su archivo .i Consulte http://www.swig.org/Doc1.3/Library.html#Library_stl_cpp_library para obtener más detalles.

Utilicé SWIG para envolver mi clase de c ++. Algunos métodos tienen una const std::string& como parámetro. SWIG crea un tipo llamado SWIGTYPE_p_std__string sin embargo, no puede pasar una cadena normal para esto cuando invoque 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?