Быстрый взгляд на ChucK documentation предлагает три возможных подхода, все это связано с тем, что ChucK является одновременно языком, а также виртуальной машиной (VM) для запуска программ, написанных на этом языке.
ChucK является открытым исходным кодом, поэтому полный исходный код этой виртуальной машины доступен, но написан на C++. ChucK доступен либо в этой форме исходного кода, либо в виде готового к запуску исполняемого файла для поддерживаемых платформ.
Я не мог найти ссылки на любую DLL-версию виртуальной машины для использования в других программах. Нельзя сказать, что такая DLL не была разработана другими, но я не мог найти никакой ссылки на нее, и она не входит в стандартное распределение самого ChucK.
Я нашел some source code which references a DLL in the context of ChucK, но мне было не совсем ясно, был ли это API DLL для использования ChucK или частью реализации, позволяя самому ChucK быть модульным или расширенным через DLL.
три варианта я вижу, прежде чем вы:
Порт Чак VM в Delphi. То есть переведите весь исходный код ChucK VM в Delphi. Это даст вам версию ChucK, полностью реализованную в Delphi, которая может запускать программы ChucK.
Внедрите DLL API (возможно, основанный на этой ссылке выше или выше) для существующего исходного кода ChucK VM на C++ таким образом, чтобы вы могли запускать программы ChucK, вызывая в эту DLL для запуска существующим C++ реализация ChucK.
Запуск программ ChucK с использованием ChucK exe с использованием команд ShellExecute(), WinExec() или CreateProcess() и так далее, как если бы вы захотели запустить любую другую внешнюю программу из программы Delphi.
Они представлены примерно в порядке убывания сложности. То есть, полный порт для Delphi (Opt 1), вероятно, будет за пределами ваших возможностей.
Реализация интерфейса DLL вокруг существующего кода C++ (вариант 2) может быть возможна в зависимости от ваших навыков разработки на C++ и Windows.
Вызов внешней программы (Opt 3) относительно прост.
Какой подход подходит именно вам, зависит от характера вашего задания, целей и вашей уверенности/навыков в соответствующих областях.
Удачи.
Обычно вы можете найти некоторые обертки, написанные в Delphi некоторыми другими опытными пользователями Delphi. Всегда отправляйте их первым. – Tim3880
Можете ли вы рассказать мне, что такое обертка? Я новичок в этих понятиях – Juanig
Некоторые классы или функции/процедуры, предоставляющие интерфейсы для использования этими DLL в Delphi. – Tim3880