Неуправляемый C ++ Win32 API или C #? - PullRequest
0 голосов
/ 17 января 2011

Добрый день,

Я думал о написании приложения, которое я могу или не могу коммерциализировать, в зависимости от того, насколько хороша окончательная заявка.Это как личный проект, с которым я надеюсь узнать больше о программировании, потому что в настоящее время я знаю больше всего только о C и C #.Вот почему я думал о запуске этого проекта как неуправляемого приложения C ++ Win32.Проблема в том, что наиболее трудно даже показать простое окно по сравнению с C # ...

Сколько людей / компаний используют Win32 API и C ++ в современном деловом мире?Как это работает по сравнению с C #?

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

Ответы [ 6 ]

3 голосов
/ 17 января 2011

Кажется, что когда требуется производительность, люди готовы отказаться от C # для C ++.Взгляните на эту историю «успеха» Уроки из полета Evernote из .NET .

На нашем тестовом оборудовании Evernote 4 запускается в пять раз быстрее и использует половинуEvernote 3.5.

Evernote выбрал WTL и Встроенный хромированный каркас .По сути, они повторно использовали Google Chrome в своих приложениях.

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

C # - это простой маршрут, который чаще всего используется Microsoft. Однако они не говорят, что все их заголовочные продукты (за исключением отдельных частей Visual Studio) написаны на C / C ++. На самом деле, я бы сказал, что большинство известных вам программных пакетов написаны на C / C ++.

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

Я большой поклонник C ++ под Windows, я занимался этим большую часть своей взрослой жизни.Тем не менее, если у вас нет опыта работы с C ++, и вы хотите написать приложение для Windows, я бы предложил пойти по пути C # в .NET.Хотя я люблю нативный C ++, мне очень не понравился C ++ / CLI и ужасный суффикс ^ для ссылок.

Учитывая, что это личный проект, я бы не стал слишком беспокоиться о том, используют ли предприятия C ++ или C #, но я скажу, что в наши дни легче найти разработчика на C #, чем разработчика на C ++.И нет, я не предпочитаю один язык здесь другому, это просто кажется реальностью (по крайней мере, по моему опыту).Что касается разработчиков C ++ / CLI?Они немного тонкие на земле:)

С C # вы определенно будете работать быстрее, чем с Visual C ++ / MFC / some-other-gui, но помните, что есть некоторые вещи, которые вывозможно, не удастся сделать в C # (и придется импортировать нативные вызовы win32 через DllImport), но я сомневаюсь, что вы еще столкнетесь с этими крайними случаями.

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

Для вашего первого проекта и без опыта работы с C ++ и Win32 я НАСТОЯТЕЛЬНО рекомендую вам использовать C #, так как вам будет легче выполнить что-то, тем самым приобретая уверенность и навыки по мере продвижения.

0 голосов
/ 17 января 2011

Я использую C ++ только несколько лет, но мне никогда не приходилось писать программы, требующие пользовательского интерфейса.Когда я это сделал, я попытался научиться использовать Qt, но обнаружил, что это немного болезненно, и в конце концов сдался.Недавно я только начал посещать занятия по C # .NET, и на первой неделе я уже начал разрабатывать довольно продвинутое приложение для биллинговой системы моей компании.

Если вы уже были опытным ветераном C ++ и предпочитали его C #.NET, тогда я бы сказал, во что бы то ни стало пойти на это.Однако в этом случае я настоятельно рекомендую вам использовать C # .NET по нескольким причинам.

1) Требуется время, чтобы что-то сделать в C #, по крайней мере, примерно в 10 раз быстрее, чем делатьэто в C ++ независимо от того, какой API вы использовали.

2) Кривая изучения C ++ поверх уже попыток написать приложение с пользовательским интерфейсом (что уже очень сложно в C ++) сделает это чрезвычайно трудным.долгое время.

0 голосов
/ 17 января 2011

Я бы тоже пошел с c #, так как он гораздо более распространен в деловом мире (по крайней мере на стороне GUI), чем неуправляемый c ++ / win32.Вы также получите желаемые результаты быстрее, особенно если вы не знаете c ++.

С другой стороны, c ++ работает лучше (если написано правильно) - так что если вы планируете интенсивную работу в своем приложении- может быть, c # просто не справится (но я сильно сомневаюсь, что это так).

Наконец, но не в последнюю очередь - если вы планируете клиентов, то по какой-то причине не имеют и могутне получить .NET Framework (или любой другой фреймворк, например, Java) - тогда нативный код - ваше единственное решение.

...