Портирование кода C ++ из Windows на Mac - PullRequest
3 голосов
/ 31 октября 2008

Я давний разработчик для Windows, и похоже, что я буду участвовать в портировании приложения для Windows на Mac.

Мы решили использовать Flex / Air для графического интерфейса для обеих сторон, что, кстати, выглядит очень гладко.

В моем приложении Windows есть C ++ DLL, которая контролирует сетевые адаптеры (проводные и беспроводные). Это написано с использованием стандартной библиотеки и Boost, поэтому большинство из них должно работать кроссплатформенно.

На Mac, какой IDE / complier использует большинство людей, если они хотят писать на C ++? Кроме того, может ли кто-нибудь предоставить указатель на API-интерфейсы Mac, которые могут управлять адаптерами WiFi (связывать, сканировать, отключать и т. Д.)?

Ответы [ 6 ]

8 голосов
/ 03 ноября 2008

Xcode - это IDE для Mac OS X, вы можете скачать последнюю версию, присоединившись к Apple Developer Connection с бесплатным онлайн-членством.

Я не верю, что существуют какие-либо поддерживаемые API для управления адаптерами беспроводной сети. Самым близким был бы фреймворк System Configuration, но я не знаю, позволит ли он вам делать все, что вы хотите.

Кроме того, я настоятельно рекомендую против , пытаясь использовать Flex / Air для удобства работы вашего приложения. Вам может показаться, что в Windows вы являетесь разработчиком Windows, но когда дело доходит до обеспечения полноценного взаимодействия с Macintosh, такие технологии не всегда являются отличным выбором.

Например, я думаю, что приложения Air не поддерживают весь спектр нажатий клавиш для редактирования текста в Mac OS X. Хотя не все пользователи Mac будут использовать все нажатия клавиш, для тех, кто привык к ним, попытка ввести текстовое поле, которое не обрабатывает (скажем) control-A и control-E для перехода в начало и конец поля, подобна плаванию через сироп.

Для нового приложения, которое должно быть кроссплатформенным, я настоятельно рекомендую создать базовую логику в C ++, используя Cocoa на Mac и WPF на Windows, чтобы получить наилучшее взаимодействие с пользователем на каждой платформе. Как Mac OS X, так и Windows оснащены современными технологиями взаимодействия с пользователем, к которым привыкли их пользователи, а также имеют хорошие способы взаимодействия кода C ++ с этими технологиями.

3 голосов
/ 31 октября 2008

Де-факто OS X IDE и компилятор Xcode . Он поставляется с каждым Mac, вы просто устанавливаете его с установочного компакт-диска OS X.

Сайт разработчика Apple - это место для получения дополнительной информации об API OS X

2 голосов
/ 08 февраля 2009

кстати для неосведомленных, это "Xcode", а не "xCode". Извините за педантизм: /

1 голос
/ 31 октября 2008

Xcode и пользовательский GCC, я верю ...

0 голосов
/ 31 октября 2008

xcode - это жаркость, как уже указывали люди.

Сохраняя кодовую базу Windows / Mac в прошлом, взгляните на MVC .

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

Что касается сетей Mac, вы на уровне подключения и так далее? Почему бы просто не позволить ОС справиться с этим, и тогда вы просто увидите, какие соединения доступны? Зачем беспокоиться о том, является ли соединение проводным или беспроводным? Поскольку в ОС уже имеется много встроенных инструментов, а пользователи привыкли убедиться, что соединение работает, то кажется странным иметь дополнительную программу для манипулирования сетью.

0 голосов
/ 31 октября 2008

Xcode используется очень часто, насколько мне известно, редактор комбинаций (например, Textmate ), командная строка gcc также используется довольно интенсивно. (это то, что я делаю на OS X)

Для всех потребностей API перейдите на Сайт разработчика Apple например. сеть API's

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...