Можно ли разработать настольное приложение на C ++, которое бы работало как на Windows, так и на Mac OS? - PullRequest
1 голос
/ 27 января 2011

Я пытаюсь сэкономить деньги и разработать настольное приложение, которое будет работать как на Windows, так и на Mac OS.Это возможно?Можем ли мы сделать это в C ++, а затем, с несколькими исправлениями и изменениями, по-прежнему повторно использовать одно и то же приложение в обеих ОС?

Ответы [ 4 ]

6 голосов
/ 27 января 2011

Да, это возможно.Некоторые коды могут отличаться, поскольку в операционных системах есть различия.

  • Вам следует использовать общую библиотеку для графического интерфейса, такую ​​как Qt: http://qt.nokia.com/Стоит отметить, что Qt привносит в таблицу гораздо больше кроссплатформенных функций, поэтому ознакомьтесь с ним.
  • Существуют некоторые различия, с которыми нужно справиться, например
    • Пути к файлам (C: нене существует на Mac, \ и / являются разделителями пути и т. д.)
    • Конечные значения файлов различаются (CrLf в Windows, Lf в Mac)
  • Вам необходимо скомпилировать вдва разных целевых процессора.Большинство компиляторов C ++ могут делать это.
  • Один и тот же код может использоваться для обоих, вы просто определяете регионы, которые будут (или не должны) включаться в зависимости от того, на какую ОС ориентирован компилятор.

Просто Google - перекрестное руководство по разработке, но многие люди уже делали это раньше.:)

Возможно, это не имеет значения, но все же стоит отметить (поскольку вы сказали «сэкономить деньги»), что как Java, так и Mono Project (.Net, Qt) позволяют вамписать кросс-платформенные приложения с ограниченными навыками работы с базовой платформой.Это язык более высокого уровня, который в целом считается экономящим время (но это отдельная дискуссия).

2 голосов
/ 27 января 2011

Расширение моего комментария:

Не .

Напишите код вашей библиотеки на переносном C ++; добавив в библиотеку как можно больше функциональных возможностей, убедившись, что вы изучаете API-интерфейсы платформ (возможно, Cocoa и .NET), так что интерфейсы библиотеки, по крайней мере, умеренно подходят для любого из них.

Затем оберните вашу библиотеку в собственные двоичные файлы; убедитесь, что вы обращаете внимание на то, как приложения должны выглядеть на каждой платформе, а также на их ощущение.

Создание приложения, которое выглядит как приложение X11 и выполняет все в некотором роде где-то между приложением Gnome, приложением KDE, приложением OS X и приложением Windows, действительно действительно ухудшает работу пользователя. *

Нехорошо .

1 голос
/ 27 января 2011

WxWidgets

Этот вопрос задают много , см. Также: этот вопрос , этот и этот среди других.

0 голосов
/ 14 ноября 2011

Опаздываете сюда на вечеринку!

Я нахожусь на последних этапах завершения кроссплатформенного коммерческого приложения (сейчас OS / X и Windows, предположительно Linux или iOS позже).

Мы используем кроссплатформенную библиотеку C ++ для разработки с открытым исходным кодом под названием Juce, и я не могу говорить об этом достаточно высоко. Он чрезвычайно полнофункциональный, код надежный и качественный, и вы, очевидно, можете создавать для Windows, OS / X, Linux, iOS и Android из одной и той же кодовой базы (мы пробовали только первые два, но другие разработчики очевидно, сообщает об успехе для других платформ).

Что особенно приятно, так это то, что ведущий разработчик очень активен на своих досках объявлений и чрезвычайно чутко реагирует на сообщения об ошибках.

Кроме того, вы можете лицензировать библиотеку по лицензии GPL, и у них также есть коммерческая лицензия по очень разумной цене.

Juce очень популярен среди людей, занимающихся цифровыми аудиоприложениями - действительно, насколько мне известно, многие или, возможно, большинство ведущих коммерческих цифровых аудиоприложений используют эту систему - но она очень полнофункциональна и чрезвычайно быстра и должна рассматриваться как лучшая кандидат на любое кросс-платформенное приложение для разработки.

...