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

问题描述:

我已经重新编译了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(我花了很多我们试图解决这个问题)

谢谢康斯坦丁。我发现了我遇到的问题,并且我想简化一些可能有助于将来需要将32位到64位OLE RCP应用程序的人员的事情。

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

我希望我所有的努力都会帮助别人。

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