Подтвердить что ты не робот

Портирование многопоточного приложения Delphi на Mac: каковы мои варианты?

Мне нужно перенести приложение (, написанное на XE2) на Mac.

Мое приложение разбивается на простой UI executable (однопоточный) и невидимый engine (который сильно зависит от OmniThreadLibrary 3.02 и Cromis DirectoryWatch)

Оба EXE-сервера обмениваются данными через Cromis.IPC

Это означает, что у меня в основном возникают проблемы с этими тремя компонентами (OmniThreadLibrary, Cromis IPC и DirectoryWatch)

Мой фокус сейчас - это движок, который имеет большую часть кода.

Мой вопрос: Есть ли что-то похожее на OmniThreadLibrary, Cromis DirectoryWatch и Cromis.IPC для Mac? (С помощью lazarus или XE2 с Mac в качестве целевого компилятора)

Ответ поможет мне решить, использовать ли Delphi XE2 или Lazarus (IDE, с которым я не знаком вообще), и посмотреть , что лучший долгосрочный подход к предложению/поддержке как Windows, так и Mac с минимальными головными болями

4b9b3361

Ответ 1

Я отвечаю на часть вашего вопроса, связанного с компилятором /IDE. Я использовал Lazarus, и я должен сказать, что вам не потребуется слишком много времени, чтобы ускориться (за исключением ваших точных требований). Лазарь становится все более и более профессиональным; ряд разработчиков - это профессиональные кодеки Delphi/XE2. Я думаю, так как вы хотите сделать свое приложение доступным на Mac, в любом случае у вас будет какая-то работа. Но вы решили использовать Lazarus, вы можете в большинстве случаев создавать приложения для Linux, Mac и Windows без особых усилий... большинство вещей просто строится правильно для каждой из платформ из того же самого немодифицированного источника. Конечно, как вы говорите, ваш код сильно опирается на OTL. Поскольку OTL является библиотекой только для окон, я думаю, что у вас будет своя работа для вас. (читайте... вам, возможно, придется написать эквивалентную библиотеку самостоятельно, или кто-то сделает это за вас) Что касается Chromis Directory watch, я еще ничего не нашел.

Надеюсь, это немного поможет. CHEERS

Этот учебник Lazarus показывает, что встроена функция потоковой передачи. Я не знаю эквивалентной библиотеки для того, что вы ищете. CHEERS