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;
}
インターフェイスファイルに入れなければならないタイプマップがありますか?もしそうなら、どうしたらいいですか?