VarBstrFromI4更改程序中某些其他BSTR的值

VarBstrFromI4 changes the value of some other BSTR in the program

本文关键字:其他 BSTR 的值 更改程序 VarBstrFromI4      更新时间:2023-10-16
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将index(BSTR(的值更改为我想要的值,但也将length(BSTR。我一直在尝试做很多选项,包括带有索引和长度的SysAllocString,但同样的问题仍然存在。

请帮忙。

一旦对字符串调用了SysFreeString,就不应该再关心该字符串了。释放的字符串在内部为释放的内存保留一个地址,稍后可能由另一个字符串或变量分配。在这种情况下,恰好新字符串与旧字符串位于相同的内存地址。

相关文章: