Советы по программированию для MS Windows для разработчиков Mac / Unix - PullRequest
7 голосов
/ 14 ноября 2010

У меня есть несколько лет опыта написания инструментов командной строки Unix (без опыта работы с GUI) на python, C и C ++, и только недавно они попали в мир GUI (только Cocoa и IOS). Я немного изучил цель C и теперь понимаю, как работает MVC с какао. Однако одно из приложений, которое я разрабатываю, нуждается в версии для Windows, и мне было интересно, с чего бы начать, если у меня совершенно нет опыта разработки для Windows.

Я думал об использовании Visual C ++ 2010 Express в качестве моей платформы разработки (потому что это бесплатно и потому что мне не нужно изучать C ++). Мое приложение относительно простое, оно будет иметь только два окна и проводить большую часть времени в фоновом режиме. Однако ему необходимо будет связаться с ОС (загрузить dll и т. Д.) И онлайн-сервером (методы HTTP), и я не уверен, что издание Visual C ++ Express дает мне доступ к необходимым API. Будет ли достаточно приложения Windows Forms? Я поступаю об этом неправильно? Нужно ли изучать C #? Любой совет будет оценен.

Ответы [ 5 ]

3 голосов
/ 14 ноября 2010

Если вы уже довольны правильным c ++, Visual Studio C ++ express вам вполне подойдет. Учитывая, что вы не создаете сложный графический интерфейс, вам даже не нужно углубляться в управляемый код - C ++ express позволяет создавать правильные консольные приложения C ++ и приложения с графическим интерфейсом. Вам также не нужно устанавливать SDK платформы - это часть VS C ++ express.

Не управляя C ++, вы сможете обмениваться исходными файлами между вашими различными проектами. Управляемый c ++, несмотря на название c ++, действительно является достаточно другим языком, с которым будет неудобно работать, если вам одновременно придется иметь дело с iso C ++.

-

Примечание: нативный Windows API - это C api, а не C ++. Таким образом, он не предоставляет богатый набор классов в согласованной структуре для работы. С другой стороны, несмотря на то, что он большой, на самом деле с ним довольно просто работать.

Также: учитывая, что вы уже знакомы с разработкой для Mac, существует пакет LGPL (iirc) под названием CFLite, который основан на windows и реализует C api, который лежит в основе Objective-C Cocoa API.

Если вы используете его абстракции, вы можете делиться большей частью кода между Windows и Mac (и другими платформами).

Другие C ++ IDE, которые вы можете рассмотреть:

  • Код :: Blocks
  • QT Creator

оба они могут быть настроены на использование порта MINGW GCC для Windows.

2 голосов
/ 14 ноября 2010

вам будет лучше с c ++, чем c #, если вам нужно больше «низкоуровневых» вещей.Загрузка dll (то есть libs) проста (прагматический комментарий lib ...), как и чистая передача HTTP и связь.

Итак, VC ++ с формой Windows будет достаточно, и это будет "очень c ++".

У вас есть доступ ко всем глобальным API, и для загрузки определенных API, таких как http, требуется всего две строки: от одной довключает заголовок wininet и другую библиотеку (библиотеки на самом деле являются «ссылками» на dll).

1 голос
/ 14 ноября 2010

На вашем месте я бы не стал так быстро переходить на совершенно новый API. Рассматривали ли вы использование Python в Windows? Большинство пакетов Python, которые я видел, также доступны для Windows, так что вы будете чувствовать себя как дома. А если вам нужен графический интерфейс, вы можете выбрать wxPython, pyGTK или что-то подобное.

Для вещей, специфичных для Windows, вы всегда можете использовать ctypes. Особенно, если они так же просты, как загрузка DLL.

1 голос
/ 14 ноября 2010

Если вы идете по пути C ++ Express, вам нужно отдельно установить Windows SDK и настроить его для использования в Visual Studio. И вы не можете использовать MFC.

Я бы, однако, предложил C #, потому что это было похоже на сборку маленьких игрушечных кубиков. Проще отладить и поддерживать. Проблема с C # состоит в том, что в нем так много библиотечных функций, что вы даже не можете знать, сделано ли то, что вы хотите, для функции. Но вот почему мы здесь :-) Если вы чувствуете, что то, что вы хотите сделать, уже должно существовать, задайте вопрос об этом. Одна заметная особенность, которой не хватает в C # - это zip-архивы (в них есть нечто похожее, но не совсем). Для архивов вы можете использовать публичные библиотеки, такие как SharpZipLib или DotNetZip .

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

рассматривали ли вы возможность использования Adobe AIR?он позволяет развертывать на Mac, Linux, Windows, iOS и т. д. Общение и запуск собственных процессов стало возможным с версии 2.0, а новейшая версия 2.5 SDK может быть ориентирована на ОС Android и телевизоры.благодаря своему опыту вы сможете быстро получить ActionScript3 / MXML.

Кроме того, есть несколько бесплатных IDE, которые вы можете использовать с Flex и AIR SDK.или, если вы студент или разработчик с низким доходом, вы можете получить бесплатную копию Flash Builder 4 от Adobe: http://www.adobe.com/devnet-archive/flex/free/


edit: я считаю, что для развертывания приложений AIR на iPhone требуется FlashПрофессиональный CS5, который включает в себя упаковщик для iPhone вариантов.в то же время я читал, что AIR и другие кросс-компиляторы для iOS мучительно медленны, поэтому, пожалуй, лучше всего разрабатывать их в Objective-C для iOS.

...