2010-12-01 6 views
0

В последнее время я играл с плагиной, предоставляемой Qt4 Framework, и отлично работает. Есть одна вещь, о которой я не знаю.C++ с разработкой плагинов Qt4

Во всех примерах интерфейсы, которые были реализованы (фактический плагин), имели доступный исходный код (у человека, реализующего интерфейс, есть доступ к источнику интерфейса). Это не проблема, но то, что я действительно хотел бы сделать, это скорее разоблачить интерфейс через общую библиотеку или что-то подобное.

Моя цель - предоставить сторонним разработчикам только файл общей библиотеки, который они могут затем «импортировать» (извините терминологию Java) в своем коде для создания плагинов для приложения. Нечто похожее на то, что просто дает файл .jar на Java, который затем может импортировать разработчик.

Причина этого заключается не в том, чтобы скрыть исходный код, так как это проект с открытым исходным кодом, но для простоты. Кроме того, программа очень зависит от того, как интерфейсы остаются такими, какими они являются, чтобы плагины разных сторонних сторон могли разговаривать друг с другом. Если они будут взаимодействовать с фактическими интерфейсами, они разваливаются.

Буду признателен за любые толчки в правильном направлении.

Спасибо!

ответ

1

C++ не допускает такой интроспекции, как Java, поэтому вы не можете просто отправить «двоичные файлы» и вывести интерфейс из этого. В C++ вам нужно текстовое описание интерфейса (файлы заголовков).

Кто-то, кто хочет разработать плагин для приложения должен иметь доступ к

  1. заголовочный файл интерфейса плагина
  2. все файлы заголовков для классов, которые используются в интерфейсе плагина.

Разработчики плагинов обычно не будут связываться с предоставленными файлами заголовков (по крайней мере, они не должны) по той причине, что вы указали в своем сообщении.

+0

Да, это то, о чем я думал. Однако отправка файлов заголовков в порядке. Еще чище, чем заставить их импортировать весь источник в проект и т. Д. Спасибо! – 2010-12-01 10:05:57