4

イライラする問題があり、それに対処するのに多くの時間を費やしましたが、解決策が見つかりませんでした.

PHPでC++クラスをSWIGで使いたいです。共有オブジェクトを生成しましたが、一部のメソッドでは正常に動作しますが、文字列引数を入力としてメソッドを呼び出すたびにこのエラーが発生します。

致命的なエラー: の引数 2 にタイプ エラーがありますPKI_Buf_initHex。期待されるSWIGTYPE_p_std__string

PKI_Buf_initHexSWIGが自動で作ったラッパークラスの名前です。私の C++ コードでは、initHexメソッドを次のように宣言します。

int initHex(const string x) 
{..}

typemaps.iインターフェイス ファイルにとを含めstd_string.iましたが、同じエラー メッセージが表示されました。

誰かがこの問題について私を助けてくれれば、本当に感謝しています。

4

1 に答える 1

18

あなたが持っている必要があります:

%include <std_string.i>

SWIGインターフェイスで十分に早い段階で(つまり、前std::stringが最初に表示されます)。

于 2012-09-14T14:38:17.000 に答える