2012-06-27 3 views
0

Я не уверен, подходит ли название этого вопроса. Я написал большую программную систему на C C++ для Windows и хочу дать пользователям этой системы возможность добавить скомпилированный код в нее. Пользователь должен иметь возможность делать базовые вещи и обмениваться данными с моей программой.Требуется: инструмент компилятора для пользователей программной системы

В настоящее время осуществляется через DLL. Но для этого необходим взрослый компилятор, и это не так просто, как я хотел. Есть ли крошечный компилятор C, который может создавать библиотеки Windows?

Другая идея - это родной интерфейс Java. Но для этого требуется полная Java-система для работы в фоновом режиме, и в ней не так просто запустить код.

Есть ли у вас какие-либо другие идеи?

+3

Похоже встроенного языка как Lua, Python или рубина поможет. – snies

+0

Для минимального компилятора c/C++, возможно, посмотрите на mingw. – snies

+0

Я пойду за луа. Синтаксис кажется намного приятнее, чем TCL, и он легко изолирован. В Интернете существует достойная поддержка сообщества и пример кода. Быстро, безопасно, просто. – Rook

ответ

2

Любой интерпретируемый язык? (TCL и Lua были разработаны как языки расширения, но вы можете почти так же легко взаимодействовать с любыми другими).

0

Как насчет интеграции python?

Вы можете создать интерфейс python, который взаимодействует с вашим приложением. Python довольно легко учиться и легко интегрируется с c/C++. The python documentation has an own chapter on that.

Вы также можете использовать такой инструмент, как swig, чтобы сгенерировать интерфейс.

Преимущество этого в том, что им не пришлось бы ничего компилировать. Они могут просто поставлять файлы python, которые могут быть загружены в ваше приложение и запускаться в программном обеспечении. Это хорошо известное использование для python, и это упрощает его простой синтаксис.

0

Как говорится в другом, вы будете лучше, если будете внедрять язык.

Я бы скинуться для Javascript и использовать google v8 engine При использовании Javascript вы получаете язык почти Everbody можно использовать и в программе. Существует другие JavaScript двигатели можно встраивать как SpiderMonkey. Посмотрите это answer, что выбрать.

0

Интерпретированный язык недостаточно хорош. Мне нужна скорость. Само программное обеспечение является интерпретированным языком. Поэтому я добавил поддержку крошечного компилятора C. Это только C, и я проверяю mingw, что, вероятно, не будет таким крошечным, как это. Спасибо за все ваши намеки.

Добавлено через несколько месяцев:

У меня сейчас два инструмента, на самом деле: TinyC и Python. Разница в скорости между ними примечательна (коэффициент 5-10), но это обычно не имеет большого значения. Python намного проще для пользователя, хотя мне удалось легко интегрировать оба в Euler GUI.

0

Один из способов добавить скрипты. Приложение может размещать среду сценариев и предоставлять там свои услуги. Пользователи смогут выполнять сценарии JScript/VBScript и взаимодействовать с вашим приложением. Преимущество состоит в том, что с разумными усилиями вы можете получить мощь хорошо известных и хорошо документированных языков сценариев в своем приложении (я полагаю, есть даже отладчик для сценариев там). Вам необходимо будет сформировать ваши приложения, поскольку COM-интерфейсы и скрипты смогут получить к ним доступ автоматически, используя имена методов, назначенные на стороне C++.

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