[開發筆記]-“在引用COM組件時,出現了無法嵌入互操作類型。。。”的錯誤


  這兩天在做一個需要將wps文檔轉換成word文檔的程序,在調用wps的com組件時項目編譯是沒有問題的,但當運行的時候卻彈出了下面的錯誤提示:

從網上百度一番后,找到了正確的解決方法。 

  先從Com組件中添加引用:

  選中引入的Com組件庫,右鍵-> 屬性:

  將“嵌入互操作類型”改為 False 選項:

 

重新編譯,程序正常運行。

 

  由此,讓我聯想到了在前不久一個朋友在使用Office組件用來轉換pdf文檔時,出現的 “無法嵌入互操作類型。。。”的問題,記得當時他的處理方法是按照網上說的教程,設置程序獲取最高的管理員權限,添加允許等操作來解決的,雖說最終程序是可以運行了,但配置起來還真是相當的麻煩呢。

  而正確的方法應該是這樣的。調用Office文檔時:(以下圖片來源於網絡)

  導入Com組件中的Office庫:

 

  直接運行會報錯,“無法嵌入互操作類型”等等之類的錯誤:

  打開 “屬性” 對話框:

  將 “嵌入互操作類型” 設置為 False:

 

  何為 “嵌入互操作類型” ???

  1. ”嵌入互操作類型”中的嵌入就是引進、導入的意思,類似於c#中using,c中include的作用,目的是告訴編譯器是否要把互操作類型引入。

  2. “互操作類型”實際是指一系列Com組件的程序集,是公共運行庫中庫文件,類似於編譯好的類,接口等。

  3. “嵌入互操作類型”設定為true,實際上就是不引入互操作集(編譯時候放棄Com程序集),僅編譯用戶代碼的程序集。而設定為false的話,實際就是需要從互操作程序集中獲取 COM 類型的類型信息。

 

參考:VS2010中出現無法嵌入互操作類型

轉載請注明出處。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM