2017-05-30 117 views
1

我正在研究一箇舊的VB6應用程序,我試圖在我的應用程序中包含一個.pdf查看器。以前我們使用.snp擴展名,但是,我們決定切換到PDF,因爲Win10不喜歡.snp。AcroPDF查看器的不尋常行爲

無論如何,我試圖在我的表單中有兩個控件,1個用於捕捉,1個用於pdf,因此我使用捕捉查看器和AcroPDF查看器。我使用的AcroPDF組件名稱是

的Adobe Acrobat 7.0瀏覽器控件的類型庫1.0

上的Form_Load我檢查擴展,並根據它是什麼,這就是我顯示控制。

這裏有趣的部分 - 當我創建一個.exe並運行它時,它就像一個魅力,沒有任何問題。我得到的奇怪行爲是,當我將它從IDE中運行出來時,無論我是否嘗試查看.pdf或.snp文件,都會得到一個空的消息框。另外,如果它恰好是一個.pdf文檔,它不會在查看器中顯示任何內容,但是,捕捉工作。

這裏的消息框的圖像... enter image description here

我沒有做的形式加載任何異常這個......,我只是檢查擴展,要麼使其設置爲可見或不可見。 ..For目錄,我做這樣的事情..

pdfViewer.src = C://...directory 

就像我說的,當用完的.exe的這個工作正常,但讓我跑出來的IDE當消息框>任何幫助將不勝感激。

回答

1

PDF問題可能是因爲Adobe已將庫遷移到64位,這打破了與應用程序(使用此組件的任何編程語言編寫)的兼容性。 一個簡單的解決方案是避免在項目中添加Adobe庫的引用(早期綁定),並使用後期綁定,如下面的文章所述(帶有VB6.0和VB.NET的示例項目),在那裏你可以在表格或圖片框加載PDF:

PDF在VBForm沒有OCX/DLL(後期綁定)

http://nuke.vbcorner.net/Articles/VB60/PDFinVBFormwithnoOCXDLLlatebinding/tabid/120/language/en-US/Default.aspx

+0

好像好消息,但不知道這是否說明了IDE與編譯的差異與OP提到的 – DaveInCaz

+0

YE問題是運行它的IDE在哪裏我得到消息框,從.exe開始工作正常。我遇到過一些文章,人們無法使用acroPDF與Adobe的11.0.0.7更新,但在這種情況下,除了IDE以外,一切正常。所以我不確定發生了什麼事。 – BobSki

+0

我想我不確定我會如何使用它。如果我想在我的表單中使用PDFviewer,我將如何處理它 - 我刪除了控件並取消選中引用,並且此代碼編譯良好,但我不確定除了添加必要的代碼。 – BobSki