おはよう。ChromeとIEを使用してFirebreath 2.0プラグインメソッドでconvert_castの動作に違いがある理由
私は私のfirebreath 2.0のプラグインで、次の方法があります:myclassObjで
void A::get_string(const FB::JSObjectPtr& myclassObj)
{
FB::variantPromise a = myclassObj->Invoke("mymethod", FB::VariantList{ "test" });
a.then<void>([this](FB::variant ret) {
std::string Str = ret.convert_cast<std::string>();
return;
});
}
にmymethodは、次のとおりです。
std::string B::mymethod(std::string tStr)
{
return tStr;
}
のstd ::文字列 "テスト" は筋力になると予想されるが、私の後ブラウザからget_stringを呼び出すと、動作の違いがあります。 Chromeを使用しているときに文字列が取得され、変換は正常です。 私はIEを使用していますが、私はret_reqでshared_ptrを取得し、私はそれから私の文字列を取得することはできません。その場合、私は変換で例外を取得します。私は私が間違ってやっている:)
P.S.を判断するのに役立ち
してください、それは問題ではない、私が取得しようとしているもの:std :: string、long、またはsmth else、chrome変換はOKですが、IEではretで取得するのはshared_ptrだけです。
実際、get_stringメソッドでmyclassObjへのポインタを取得したいのですが、プロキシクラスのためにスタックされています。だから、私はstd :: stringを使用してポインタを取得しようとしています。