關於引用mshtml的問題

2021-06-05 16:35:54 字數 1305 閱讀 3176

今天看了個驗證碼識別的**,其中引用到了mshtml.dll,找了半天原來就是microsoft.mshtml.dll。查這個dll的時候還發現了好幾篇關於這個dll新增問題的文章。順便看了下,原來這個dll有三個,新增引用時要注意了。

第一篇文章:

1.新增引用的問題

一般在開發環境下會在三個地方存有microsoft.mshtml.dll檔案。所以在新增引用時,也會出現三個看似一樣的項。對於開發者來說,引用其中任何乙個都不會影響到正常的開發。但問題會出在軟體發布之後!在客戶的機子上執行時,通常會提示檔案的簽名不正確,無法載入。

解決的方法就是刪除現在對mshtml引用。重新選擇正確引用。就是選最下面那個。路徑是:x:\program files\microsoft.net\primary interop assemblies\microsoft.mshtml.dll 。把引用對話方塊拉大,可以看到檔案的路徑。

2.型別選擇錯誤

如果問題一解決了,或者開始就選對了。可能客戶機了上執行又報 system._comobject 無法強制轉換到 htmlwindow2class 、htmldocumentclass或其它類似的錯誤。在開發者的機子上執行,卻完全正常。這時通常我們會狂抓,完全不知是什麼原因!在開發環境下用obj.tostring()顯示是html***xclass在客戶機上得到結果卻是system._comobject.解決方法很簡單用html***x替換html***xclass即可。

第二篇文章:

也是用到了microsoft mshtml.dll程式集,但是安裝在使用者電腦後,異常:

system.reflection.targetinvocationexception: 呼叫的目標發生了異常。 ---> system.io.filenotfoundexception: 未能載入檔案或程式集「microsoft.mshtml, version=7.0.3300.0, culture=neutral, publickeytoken=b03f5f7f11d50a3a」或它的某乙個依賴項。系統找不到指定的檔案。

解決方法如圖,選擇高亮的那個dll就可以了。

屬性選擇:

複製本地=true

特定版本=false;  

原因是:

因為 microsoft.mshtmal.dll 這個 dll 是從 system32 資料夾下的 mshtml.tlb(com 型別庫檔案)中匯出的,因此我們只需要用 vs2008 自帶的 tlbimp.exe com 型別庫匯出工具將這個 tlb 檔案再導一遍就可以了。

mshtml元件引用的問題

copy from 在乙個系統裡邊應用了乙個htmleditor,winform的程式,需要引用microsoft.mshtml.dll。所以就引用了.net下的這個檔案。新增引用 net 選擇microsoft.mshtml。開發過程一切完好,沒有遇到任何問題。但是部署到另外的一台機器的時候,就出...

關於引用 的問題

include using namespace std template class a t g t a,t b template t a g t a,t b int main 這時候會報錯說,templat.cpp in function int main templat.cpp 21 21 er...

關於image引用的問題

今天遇到這個乙個奇怪的問題,session在登入後,在乙個有影象的頁面給清空了。百思不得其解,只有一行一行的調。最後鎖室到這一行。為什麼路徑為空會置session為空呢?仔細思考了一下,我認為是這樣的,客戶端請求伺服器時,如果頁面上有,會跟路徑再請求一次伺服器來找。舉個例子,假如我現在有這樣乙個目錄...