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

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

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

Оба EXE- файла общаются черезCromis.IPC

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

Сейчас я сфокусирован на движке, который содержит большую часть кода.

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

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

1 ответ

Решение

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

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

Из этого туториала Lazarus видно, что встроена функциональность многопоточности. Мне неизвестна эквивалентная библиотека для того, что вы ищете. CHEERS

Другие вопросы по тегам