0
BSTR length;
BSTR checkLength = SysAllocString(TEXT("document.getElementsByTagName('tspan').length.toString()"));

HRESULT h = gWebView->stringByEvaluatingJavaScriptFromString(checkLength, &length);
SysFreeString(checkLength);

long longLength;
h = VarI4FromStr(length,0,0,&longLength);
SysFreeString(length);

BSTR index;
long longIndex = longLength - 1;
h = VarBstrFromI4(longIndex,0,0,&index);

最後の行 VarBstrFromI4 は、インデックス (BSTR) の値を目的の値に変更しますが、長さ (BSTR) の値もインデックス (BSTR) の値に変更します。インデックスと長さを指定した SysAllocString を含む多くのオプションを実行しようとしましたが、同じ問題が解決しません。

助けてください。

4

1 に答える 1

2

文字列を呼び出したらSysFreeString、その文字列を気にする必要はありません。解放された文字列は、後で別の文字列または変数によって割り当てられる可能性のある割り当て解除されたメモリへのアドレスを内部的に保持します。この場合、新しい文字列が古い文字列と同じメモリアドレスに配置されることがあります。

于 2011-06-08T10:13:41.830 に答える