Связывание C ++ и Java GUI через SWIG - PullRequest
3 голосов
/ 12 августа 2011

Я пытаюсь включить визуализатор вычислительной химии / физики, известный как Avogadro ( 1 ), в мой проект jTabbedPane. Я использовал QT Jambi ( 1 ) для создания JUI (Java GUI) из пользовательского интерфейса Avogadro в Eclipse. Я был успешен в этой попытке, но GUI был (очевидно, бездействующим) после запуска.

Короче говоря, сложность заключается в том, что я пытаюсь получить доступ к библиотекам C ++ массивного проекта, который может компилироваться только с CMake (импорт в Eclipse не был успешным). Что еще хуже, все, что мне нужно для взаимодействия, - это файл .cpp, который регулирует графический интерфейс пользователя и связывает его с остальной частью проекта, обеспечивая таким образом функциональность. Я планирую использовать SWIG для взаимодействия с функциями в вышеупомянутом файле cpp, и я планирую, чтобы интерфейс работал с библиотекой C ++ для добавления функциональности в графический интерфейс Java.

Есть мысли о том, как я мог это сделать? Нужно ли ПРОВЕРИТЬ весь проект?

1 Ответ

2 голосов
/ 29 марта 2012

Похоже, Авогадро с открытым исходным кодом.Таким образом, вы можете скачать исходный код и SWIG весь проект.Это даст вам те же классы в Java, что и в C ++.

Если вы хотите только подмножество функций Avogadro, я бы предложил создать простой класс моста в C ++.Этот класс моста, возможно, с другими вспомогательными классами, может быть затем SWIGed.Ваша Java теперь будет использовать класс bridge для выполнения библиотеки Avogadro.

...