今天測驗IDispatchEx的示例代碼中InvokeEx回傳了E_ACCESSDENIED錯誤,為什么?
微軟示例代碼的地址:https://msdn.microsoft.com/en-us/library/sky96ah7
我把它的HTML code保存在test.html里,然后在IE里打開test.html。
一直執行到
bstrName = SysAllocString(OLESTR("cat"));
hr = pdexScript->GetDispID(bstrName, 0, &dispid);
都是對的,獲取到了dispid。但是后面的InvokeEx回傳了E_ACCESSDENIED錯誤,有了解的請指點下。
<html>
<body>
<script type="text/javascript">
function cat()
{
// Create new element and assign the value 10
this.Bar = 10;
}
function test()
{
// Construct new object
Obj = new Object();
// Create new element and assign function pointer
Obj.Elem = cat;
// Call Elem method ("this" == Obj)
Obj.Elem();
// Obj.Bar now exists
}
test();
</script>
</body>
</html>
uj5u.com熱心網友回復:
InvokeEx報錯之后EXCEPINFO 里面是什么?uj5u.com熱心網友回復:
回傳的都是空,看不出什么東西,但是這個代碼我放在虛擬機里IE8的環境是可以運行的,我本機是IE11。
我查了些資料,有些是說IE9以后更新了什么權限之類的東西,英文太渣看不懂。。。
uj5u.com熱心網友回復:
更新:nstallation of KB3025390 breaks out-of-process JavaScript execution in IE11
https://connect.microsoft.com/IE/feedback/details/1062093/installation-of-kb3025390-breaks-out-of-process-javascript-execution-in-ie11
有時間幫看一下,是不是這個更新導致的?看不太懂,謝謝。
uj5u.com熱心網友回復:
解決方法是安裝KB3021952 更新uj5u.com熱心網友回復:
如果是系統更新引起的bug,那么就安裝新的kb來修復系統問題uj5u.com熱心網友回復:
我想應該不是這個KB3021952 更新的問題。
我用了兩臺IE11的win7_64電腦。一個是運行正常的,一個是回傳E_ACCESSDENIED錯誤的。
然后我看了"已安裝的更新",兩個電腦都有這個KB3021952包。
然后我卸載了運行正常的那臺電腦的此更新,重啟電腦后依然正常。
所以會不會是電腦或者IE11的版本哪里的設定問題可以導致E_ACCESSDENIED錯?
uj5u.com熱心網友回復:
我也遇到同樣問題,請問您的問題解決了嗎?轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/109586.html
下一篇:MFC仿qq求助
