2015-12-15 2 views
1

Я пытаюсь использовать обычную dll dll с элементом управления в своем Eclipse RCP Plugin.Как использовать обычную dll dll в плагине java eclipse?

библиотека 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) 
    ... 

Как я могу рассказать моему плагину, где искать идентификатор класса? Должен быть какой-то основной момент, который мне не хватает, но я ничего не нашел об использовании пользовательских DLL-библиотек OLE.

+0

Я думаю, вы должны указать полный путь к файлу. Является ли TestControl типом файла? – SomeDude

ответ

0

После долгих проб и ошибок я нашел решение моей проблемы:

Мой Dll зарегистрирован:

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

Вместо этого я зарегистрировал его:

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

и это сработало. Я не знаю, почему существуют разные версии.

+0

Как я могу зарегистрироваться в \ Microsoft.NET \ Framework64 \ v4.0.30319 \ regasm –

Смежные вопросы