Используя SWIG с методами, принимающими std :: string в качестве параметра

Я использовал SWIG, чтобы обернуть мой класс C ++. Некоторые методы имеют в качестве параметра const std :: string & . SWIG создает тип с именем SWIGTYPE_p_std__string , однако вы не можете просто передать для этого обычную строку при вызове метода в C #. Приведенный ниже пример - это всего лишь модифицированный пример, который поставляется с пакетом 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();
}

] В моем интерфейсном файле у меня только что есть:

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

%{
#include "example.h"
%}

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

И метод, который оборачивается в C ++, следующий:

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

Есть ли какая-то карта типов Я должен выложить файл интерфейса? Если да, то как мне это сделать?

17
задан Seth 3 February 2012 в 01:20
поделиться