Профиль пользователя заблокирован сроком с 6 мая 2016 г. и навсегда по причине: Мат в комментариях
Ответы пользователя по тегу C++
  • Как перейти с консольных приложений на графические (оконные)?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    Выбор GUI-фреймворка зависит от ОС, под которую хотите писать.
    Лучше всего писать GUI не на C++, а осваивать C# под Winforms/WPF. Создавать на нем GUI гораздо проще, получается гораздо лучше, в нем гораздо больше всего готового, под винду это однозначно лучше, чем Qt (который кроссплатформенный - т.е. работает больше на количество, чем качество) Но полноценный C# есть только под винду. А вот нужны ли вам другие ОС, какие именно - это от задач зависит и от того, какую ОС вы знаете лучше всего и какая под рукой.

    C++ под WinAPI стоит изучать под виндой параллельно C# под Winforms, для знания основ, ведь весь GUI, который есть на винде, в той или иной мере основан на WinAPI.
    Но реально на нем, конечно, не пишут гуев, а используют его в виде вставок в код на том же C#, для тех задач, для которых в .NET нет средств.
    Ответ написан
    1 комментарий
  • На чем писать кроссплатформенное GUI приложение?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    Сам по себе вопрос очень сомнителен.
    А нужно ли оно вообще на всех перечисленных системах?
    А почему везде должен работать один и тот же код? Может, достаточно сделать кроссплатформенной библиотеку, а GUI-оболочки написать под каждую ОС отдельно, на родных инструментах?

    > Что у java - не знаю.
    Очень сильно ЦП и ОЗУ грузит. GUI же у нее убог по виндовым меркам.

    > на сколько я понимаю, с GUI на не win платформах все очень плохо
    По меркам этих самых не win платформ - может и норм.
    Xamarin в первую очередь под Mac заточен. Я про Xamarin.Mac. Потому что "официальный" стек Xcode+Swift+Cocoa напрямую - это тоже не подарок, совсем не то, что Winforms на винде.
    Ну а на линуксе требования к гую вообще минимальны, такая уж это ОС.
    Так что вариант: под винду гуй на Winforms, под остальные - на чем-то Xamarinовском.
    Ответ написан
    3 комментария
  • Что изучать C# или С++?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    А я так скажу:
    Изучать стоит и C#! И C++! И ассемблер! И машинный код учиться прямо в HEX-редакторе править!
    А еще программаторы и паяльник!

    Ну, как вам такой ответ? Вводит в ступор, да?
    А иного и быть не может.
    Ведь если вы в вопросе не уточняете свой круг задач, то только такие ответы и можно получить, типа "всяк кулик свое болото хвалит", т.е. люди просто будут вам рассказывать о своих задачах (причем 90% сами толком не умеют о них рассказать, поэтому вам в их историях будет сложно узнать свой случай) и об инструментах, которые они лично для себя выбрали.
    А я вот многоболотный кулик, потому хвалю все болота сразу, от C# до паяльника.

    Так как я пока что работаю 1С-разработчиком, область применения будет больше в сфере экономики и бухгалтерии.

    Это не уточнение. Чем вас не устраивает 1C? Для чего именно нужен другой язык? Подробнее.
    Ну скорее таки C#, но всякое может быть, может и C++ не подходит, а вообще что-то иное надо.
    Ответ написан
    6 комментариев
  • Нужен ли Win32\ WinRT?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    Под WinRT (Metro/UWP) пока рановато писать, хотя бы потому, что мала популярность виндов 8 и выше, а на ниже его нет вообще.

    Нужно писать классические десктопные приложения, которые идут хотя бы на WinXP и выше.
    WinRT не является для них основой, он прилеплен где-то сбоку как другая платформа.
    А вот Win32 - является, все фреймворки (.NET, VCL, Qt...) основаны на WinAPI.

    Но непосредственно на WinAPI никто не пишет приложений, это слишком тяжело и долго, основную часть кода пишут на фреймворке (под винду обычно лучше всего C# и .NET), а вот те вещи, которые на фреймворке не сделать, - делают на WinAPI.
    Поэтому полезно изучать WinAPI, но реально нужнее знать именно те его функции, для которых нет оберток в фреймворке. И изучать их по мере необходимости: писал программу - понадобилась - погуглил - изучил - вставил DllImport - применил - работает.
    Хотя и тот же GUI или работу с файлами или HTTP тоже полезно изучать параллельно на .NET и на WinAPI, для знания основ, ваш вопрос "кто на ком основан" это тоже поможет прояснить.
    Ответ написан
    1 комментарий
  • C++ vs Java for Android?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    А чем вам нравится C++, да настолько, чтоб Java была хуже, чем он?
    Я понимаю, если бы вам C# нравился. Или если бы это на винде было - но мы-то об андроиде говорим.
    Ответ написан
    2 комментария
  • Какую выбрать среду для написания кода на С++?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    > Громоздкая фиговина
    Небось Community или вовсе какой-нибудь пиратский Professional? Или еще круче - Ultimate? И какого чорта вы это поставили?
    Visual C++ Express 2008 и 2010 совсем не громоздки. Между тем, их вполне хватает, и под винду это уж всяко лучше, чем решения на базе MinGW, будь он хоть новейшей версии, которую только вчера сбилдили.

    > папки, подпапки, все эти замуты с проектами, решениями
    При разработке более-менее крупных проектов, где есть хоть какая-то архитектура и абстракция, все это нужно.
    Как минимум нужны проджекты/решения, именно проджект объединяет несколько файлов исходного кода, если среди них хотя бы 2 файла .cpp, оба из которых нужно отправлять на компиляцию.
    Есть, конечно, другие варианты, например, Makefile, но все равно они по сути сводятся к тем же проджектам, при этом они гораздо менее удобны, это для линуксоидов с их спецификой.

    Хотя да, иногда хотелось бы именно просто создать файл и все, жаль, что MS излишне категоричны и VS не предоставляет такого варианта (такая категоричность аж попахивает линуксятиной - линуксоиды тоже категоричны по-своему)
    Но вот у меня создание проекта с 1 файлом и его сохранение занимает лишнего времени всего секунд 30-60, не более. Неужели это так важно?
    Ничего сильно сложного нет:
    1. Файл -> Создать проект
    2. Нужно выбрать шаблон "Пустой проект"
    3. Проект -> Добавить новый элемент
    4. Выбираем "Файл исходного кода (.cpp)" и не задумываясь вбиваем имя main.cpp
    5. Все, в открывшемся окне можно писать код, затем все сохранить, и запустить отладку (при этом в папке Debug появится exe)
    Можно и еще проще, если пользоваться готовыми шаблонами, например, "Консольное приложение win32", хотя я так не делаю.

    А теперь - главное: о том, почему собсна под виндой следует использовать именно компилятор Visual C++:
    https://otvet.mail.ru/answer/1787375746
    Этот компилятор идет с Visual Studio, но может использоваться и отдельно, в т.ч. из командной строки. Надо заметить, сам по себе компилятор не требует заморочек с проектами и т.д.
    Может его можно и к другим IDE прикрутить. Но это все лишь теоретически, а на практике обычно просто юзают VS и все.
    Ответ написан
    6 комментариев
  • Есть ли проекты на С++, исходники которых стоят внимания, а то есть проекты написаны качественно и там есть чему поучиться?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    .NET Framework - один из лучших проектов с лучшей архитектурой. Не идеальной, местами вообще плохой - но в целом тем не менее лучшей.
    Его библиотеки написаны на C#, а не на C++, но это не имеет значения. Для С++ подобного фреймворка до сих пор никто не написал, даже лучшему C++-фреймворку Qt очень далеко до .NET. А жаль. В рамках любого достаточно крупного проекта обязательно следует написать нечто подобное, и проект строить уже на этом фреймворке.

    > чтобы не перенимать плохие практики, а учиться сразу хорошему
    Недостаточно знать, что такое хорошо. Еще надо знать, что такое плохо. Не поработав с плохой библиотекой и не имея уже состоявшегося опыта в архитектуре (чтобы давать оценку сходу), просто невозможно понять, что она плоха!
    Поэтому нужно рассматривать не исключительно лучшие проекты, а все подряд, и самому смотреть, где что хорошо, а где что плохо.
    И делать для себя выводы.
    Ответ написан
    Комментировать
  • Как средствами С++ находить и нажимать кнопку на веб странице?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    Идея-пиндея.
    Автокликеры - самый примитивный подход к созданию ботов. Было бы все так просто - мастерам в этом деле (например, мне) не платили бы столько.
    Как минимум надо использовать браузерные движки, а лучше HTTP-сниффер + чистые HTTP-запросы; под винду надо писать на C#, а не C++; и т.д.
    Ответ написан
  • COM: как портировать из MSVC в MinGW?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    > У нас есть некая COM-библиотека, работающая на заголовках и инлайнах (TLH и TLI), генерируемых через директиву #import.
    Не совсем понял. У вас есть COM-библиотека, и вы ее "подключаете" с помощью #import к основному приложению - так что ли?

    И зачем вам эта линуксятина MinGW?
    Под винду надо и средства юзать виндовые...

    Ну если надо, то берем эти .tlh и .tli, объединяем в 1 хедер (для удобства) и долго и нудно удаляем все лишнее, все, что не поддерживает MinGW, прежде всего это свойства (property), которы[ в MinGW, естественно, в таком виде нету...
    Чтобы быть уверенным, что в итоге все будет работать - можно начать с малого, то есть сперва написать хелловорлдную COM-библиотеку с 1 простеньким интерфейсом, и все это провернуть с нею, а там и за основное дело браться.

    В моем случае получилось все сделать гораздо проще.
    Надо было на MinGW работать с ADO. Я не стал мучаться с #importом, а сперва глянул один из форков сего компилятора - MinGW-w64 - и обнаружил, что в нем уже есть такие хедеры, видимо, портированные то ли из VC++, толи из C++ Builder, что и обнадежило меня и я стал пробовать их в Visual Studio.
    В VS эти хедеры заработали, после чего сравнительно легко добавились в обычный MinGW, где заработали также. Сейчас на базе их строю высокоуровневую обертку в стиле ADO.NET, один и тот же код работает как в VS, так и в MinGW..
    Ответ написан
    3 комментария