2

C ++を使用しているときに、パラメーターとして受け取るJava関数を呼び出すにはどうすればよいですか。パラメータがintなどの単純な型である場合にC ++からJava関数を呼び出す方法は知っていますが、Mapを呼び出す方法は知っていますMap<String, String>C++std::map<std::string, std::string>

t.env->CallStaticVoidMethod(t.classID, t.methodID, params);

これを達成するためのトリックはありますか?

2 つを分離して使用しjobjectArrays of jstring、Java 関数のマップにインデックスで接着するには、またはより洗練されたソリューションがありますか?

4

2 に答える 2

0

Java 関数が を受け取る場合Map<String,String>、その型のオブジェクトを渡す必要があります。お気付きのように、C++std::mapは Java Map ではありません。Java 関数を呼び出す前std::map<std::string,std::string>に、新しく構築された Javaにをコピーできます。Map<String,String>

これには、C++ から Java マップ (HashMap など) を作成し、それを埋める必要があります。

于 2015-09-04T14:58:50.480 に答える