在32位swt eclipse rcp应用程序中加载64位ole

时间:2011-02-11 10:09:13

标签: eclipse 64-bit swt ole rcp

我已经为64位Windows平台重新编译了一个32位的ole控件(这是必要的,因为ole在这个设备中分配了大量的内存)。

我需要在我的eclipse rcp应用程序中加载这个应用程序,该应用程序在JDK32bit和eclipse 32bit(64位上的Windows 32bit emualtion)上运行。我希望不要重新编译rcp应用程序,因为它很大,而且我担心很多问题都可能出错。

到目前为止(在32位平台上),我使用此站点ActiveX Support In SWT中描述的方法来加载此activeX。现在在64位窗口上,ole的加载失败(它启动了一个例外)。

  1. 您认为我在win64(jdk64)中转换整个rcp应用程序是否必要?
  2. 有谁知道我如何诊断组件是否注册良好?是否有工具来检查系统中注册的所有COM对象(我发现只有32位工具在64位下不能工作)。实际上,我使用的唯一方法是实现另一个.NET应用程序,在其引用中包含activex组件的dll。
  3. 有没有人试图在eclipse rcp应用程序中加载64位ole(是否可能)? 任何建议都非常好(我花了很多时间试图解决这个问题)

2 个答案:

答案 0 :(得分:3)

您不能在同一进程中混用32位和64位组件。要在RCP应用程序中加载64位OLE控件,您需要64位JDK和64位Eclipse运行时。

答案 1 :(得分:1)

谢谢康斯坦丁。我发现了我遇到的问题,并且我希望能够解决一些可能有助于将来需要移植32位到64位OLE RCP应用程序的人的事情。

  1. 注意你安装的jdk。如果您同时拥有32位和64位,则应检查启动配置(调试和运行配置 - >主菜单)中指向的JDK。如果应用程序是移植可能你指向错误的32位JDK
  2. 注意导入正确的swt插件。在您的启动配置(调试和运行配置 - >插件选项卡)中,在过滤器类型* swt中搜索已安装的swt插件并选择64位版本
  3. 对于OLE移植,我发现这些链接非常有用
  4. 我希望我所有的努力都会帮助别人。