如何在java eclipse插件中使用自定义OLE dll?

时间:2015-12-15 07:14:05

标签: java dll swt eclipse-rcp ole

我正在尝试在Eclipse RCP插件中使用带有控件的自定义OLE dll。

dll在我的工作目录中,但如果我尝试使用它,我会得到一个SWTException:

我使用此代码:

Display display = Display.getCurrent();
Shell shell = new Shell(display);
OleFrame frame = new OleFrame(shell, SWT.NONE);
OleClientSite site = new OleClientSite(frame, SWT.NONE, "MyCustomDll.TestControl");
OleAutomation test = new OleAutomation(site);
shell.open();

得到这个例外:

org.eclipse.swt.SWTException: Class ID not found in registry
  at org.eclipse.swt.ole.win32.OLE.error(OLE.java:317)
  at org.eclipse.swt.ole.win32.OLE.error(OLE.java:283)
  at org.eclipse.swt.ole.win32.OleClientSite.<init>(OleClientSite.java:226)
  ...

如何告诉我的插件在哪里查找类ID? 必须有一些我缺少的基本点,但我没有找到任何关于使用自定义OLE dll的信息。

1 个答案:

答案 0 :(得分:0)

经过大量尝试和错误后,我找到了解决问题的方法:

我的Dll注册时间:

C:\Windows\Microsoft.NET\Framework64\v2.0.50727\regasm

相反,我将其注册为:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regasm

它有效。我不知道为什么还有不同的版本。