2011-02-11 165 views
1

我已經重新編譯了64位Windows平臺的32位ole控件(由於ole在本設備中分配的內存很大,所以這是必要的)。在32位swt eclipse rcp應用程序中加載64位ole

我需要在我的eclipse rcp應用程序中運行JDK32bit和eclipse 32位(64位Windows 32位版本)。我希望不要重新編譯rcp應用程序,因爲它很龐大,我害怕很多thigs可能會出錯。

到目前爲止(在32位平臺上),我使用了本站描述的方法ActiveX Support In SWT來加載這個activeX。現在在64位窗口上,ole的加載失敗(它啓動一個異常)。

  1. 在你看來,我必須將win64(jdk64)中的整個rcp應用程序轉換成?
  2. 有誰知道我該如何診斷組件是否註冊良好?是否有一個工具來檢查系統中註冊的所有COM對象(我發現只有32位工具不能在64位下工作)。實際上,我使用的唯一方法是實現另一個.NET應用程序,它在其引用中包含activex組件的dll。
  3. 有沒有人試圖在eclipse rcp應用程序中加載64位的ole(有可能)? 任何建議是非常wellcome(我花了很多我們試圖解決這個問題)

回答

1

謝謝康斯坦丁。我發現了我遇到的問題,並且我想簡化一些可能有助於將來需要將32位到64位OLE RCP應用程序的人員的事情。

  1. 小心你的jdk安裝。如果您同時擁有32位和64位,則應檢查啓動配置(調試和運行配置 - >主選項卡)您指向的JDK。如果應用程序正在移植,可能是您指向錯誤的32位JDK
  2. 請注意導入正確的swt插件。在啓動配置(調試和運行配置 - >插件選項卡)在過濾器中鍵入* SWT搜索已安裝的SWT插件,並選擇64位版本
  3. 對於OLE移植,我發現非常有用的這些鏈接

我希望我所有的努力都會幫助別人。

3

你不能在同一過程中混合使用32位和64位組件。要在RCP應用程序中加載64位OLE控件,您需要64位JDK和64位Eclipse運行時。

相關問題