全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:5122
推到 Plurk!
推到 Facebook!

Interface not supported

缺席
出雲天使
一般會員


發表:1
回覆:0
積分:0
註冊:2004-02-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-05 10:20:35 IP:61.222.xxx.xxx 未訂閱
請教各位先進:
小弟以Delphi7撰寫ActiveX Form,其中使用了一個由協力廠商開發的ActiveX元件(*.dll檔,事先已安裝至Delphi的元件盤內)。

當我寫的ActiveXForm開發完成後,產生*.ocx檔案,放置在Web Server上。
使用的方式是內嵌在網頁中,當用戶開啟該網頁時,瀏覽器會自動下載,由於此*.ocx檔案會呼叫廠商提供的*.dll,因此瀏覽器會自動下載*.ocx以及*.dll兩個檔案,並在用戶的電腦上註冊,這些已經試過沒有問題,用戶端也可以正確經由瀏覽器看到*.ocx所顯現出來正確的結果。

但是有一天網頁設計師改變了網頁設計的方式,在網頁中另外開啟一個新的網頁,而新的網頁就是有內嵌*.ocx的網頁,這個時候,用戶端出現了Interface not supported的錯誤訊息,讓我一陣錯愕。

這個錯誤出現的原則經過我測試之後,發現是,只要是直接開啟該有內嵌ActiveX元件的網頁,就可以正常顯示;但是只要是開新視窗(子視窗)的方式,就會出現錯誤。

這讓我百思不得其解,上Delphi K.Top討論區爬文爬出來的結果,不是權限設定不夠,就是DCom的連線方式在開發時期的Connected設為True,可是,我的內嵌元件網頁可以在用戶端上正常運作,應該就不是上述的兩個情形???只要是由瀏覽器另開一個瀏覽器,網頁就會錯誤,如果是網頁重導(Redirect),因為仍然是母視窗,所以就不會有錯,這是我發現的情形。

另外,我比較過另外一個廠商提供的元件,原本就是*.ocx(可視元件),我開發的ActiveXForm就不會有這樣的問題,即使網頁另開內嵌這個ActiveX的網頁也不會產生Interface not supported的錯誤,由此可知,這兩個ActiveX元件的差別就在,一個是呼叫*.ocx,另一個是呼叫*.dll,而呼叫*.dll的這個ActiveXForm只要出現在由別的視窗開啟的子視窗中就會發生Interface not supported錯誤,請問各位先進,該如何解決這個問題呢? 目前我的作法是協調網頁設計師不要另開視窗,可是這樣並不算解決問題。

感謝各位先進的解答,感激不盡!!! 出雲天使
------
出雲天使
編輯記錄
GrandRURU 重新編輯於 2016-05-15 18:58:20, 註解 無‧
GrandRURU 重新編輯於 2016-05-15 18:59:19, 註解 無‧
GrandRURU 重新編輯於 2016-05-15 18:59:57, 註解 無‧
pcplayer99
尊榮會員


發表:142
回覆:740
積分:591
註冊:2003-01-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-05 19:57:10 IP:219.133.xxx.xxx 未訂閱
你要想办法知道,究竟是你的 ActiveX Form 的Code导致的这个错误提示,还是那个dll导致的这个错误。 比如,你可以在你写的 Activex Form里的code里加LOG CODE或者加try except,来抓这个错误。看看错误究竟是哪里产生的。 OCX和DLL,本来就是一回事。不会因为是OCX和DLL不同而导致这样的问题。本质上讲,OCX也是DLL。OCX也是COM元件。
系統時間:2017-12-17 19:54:42
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!