1. 程式人生 > >C# 操作PDFCreator 引發 檢索COM類工廠中CLSID為{}的元件時失敗...

C# 操作PDFCreator 引發 檢索COM類工廠中CLSID為{}的元件時失敗...

自己一個小型的Winform專案中有使用到PDFCreator虛擬列印,在初始化PDFCreator虛擬印表機模組程式碼中,
        private void initPdfPrinter()
        {
            try
            {
                wisePdfCreator = new PDFCreator.clsPDFCreator();
                wisePdfCreatorError = new PDFCreator.clsPDFCreatorError();
                wisePdfCreator.eError += new PDFCreator.__clsPDFCreator_eErrorEventHandler(wisePdfCreator_eError);
                wisePdfCreator.eReady += new PDFCreator.__clsPDFCreator_eReadyEventHandler(wisePdfCreator_eReady);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }

出現瞭如下圖所示的問題,

研究了好久後來才發現,問題處在我的專案引用上面,專案中本來是要引用PDFCreator.exe這個COM程式的,之前專案引用沒錯,但是不知那天把這個引用去掉了,而是引用的VS 自動生成的Interop.PDFCreator.dll,引用這個dll檔案,然後編譯專案,VS不會報錯,但是啟動後,執行到上面所示的程式碼塊的時候,就報錯了.

所以最後我將專案中這個VS自動生成的Interop.PDFCreator.dll刪掉,然後引用PDFCreator.exe這個COM元件,重新編譯專案,執行文章開頭那段程式碼無誤.