1. 程式人生 > >error C4772: #import referenced a type from a missing type library; '__missing_type__' used as a pla

error C4772: #import referenced a type from a missing type library; '__missing_type__' used as a pla

       工程中需要引用office庫,由於機器上裝了多個版本的office,時常會解除安裝、安裝office。由此導致工程時而執行順利、時而出現如標題所示的錯誤。

       簡單地說,問題出在如下注冊表項:

      HKEY_CLASSES_ROOT \ TypeLib \ {2DF8D04C-5BFA-101B-BDE5-00AA0044DE52} \ 

       在Office安裝過程中,安裝程式之一是在TypeLib金鑰下注冊了一個mso.dll版本。這個註冊是允許編譯器在處理msoutl.olb時找到mso.dll的副本。當這一項下出現多個版本時,問題就來了。

       我這裡出現問題的原因是之前安裝了office2013,後來解除安裝時,這個登錄檔項並沒有刪除對應項,由此導致工程中引用的庫在尋找副本時,指向了這一項,從而出現這個編譯錯誤。解決方法很簡單,刪除office2013在這一項下對應子項2.7,問題就解決了