2012-02-03 20 views
17

SWIGを使用してC++クラスをラップしました。メソッドによっては、パラメータとしてconst std::string&があります。 SWIGはSWIGTYPE_p_std__stringと呼ばれる型を作成しますが、C#でメソッドを呼び出すときには通常の文字列を渡すことはできません。 C++に包まれているパラメータとしてstd :: stringを使用するメソッドでSWIGを使用する

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

%{ 
#include "example.h" 
%} 

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

および方法は次のとおりです:以下の例では、私はちょうど持っている私のインターフェイスファイルで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(); 
} 

が付属しています単なる変形例である

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

インターフェイスファイルに入れなければならないタイプマップがありますか?もしそうなら、どうしたらいいですか?

答えて

関連する問題