Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 5.00
леонтий
76 / 29 / 2
Регистрация: 03.08.2009
Сообщений: 66
#1

Выбор компилятора по следующим критериям - C++

03.08.2009, 21:29. Просмотров 1776. Ответов 14
Метки нет (Все метки)

Добрый день.
Прошу помочь с выбором компилятора по следующим критериям (сам не знаю что выбрать):
1. Необходимо создавать просты приложения для среды Windows, с главным требованием: время отклика системы на воздействие и скорость выполнения программы.
2. Необходимо создавать два типа приложений: консольные (как наиболее быстрые) и визуальные (желательно с хорошим помощником по коду - знаний по ООП - минимальные (фактически ноль). Есть опыт применения приложения на Билдере (писали мне под заказ)- отрицательный - скорость выполнения слабая (нельзя работать в псевдореальном времени - необходима задержка примерно 50-100 мс). Присматриваюсь с VC-8 (во первых русский, сейчас цена приемлемая, есть опыт работы с программами Microsoft - VB6), но здесь возникают еще несколько вопросов:
1) можно ли писать двоякие (смешанные приложения): в режиме отладки с применением визуализации .Net, окончательный вариант - чистая консоль (интерфейс не нужен - программы предназначены для Windows XP Embedded без монитора, мышки и клавиатуры - только кнопки и связь с МК). Т.е. программа изначально консольная - определяет есть монитор или нет, если есть - загружает модуль на Net для визуального интерфейса?
2) Основной опыт работы на языке "С" (для МК Atmel) - что мне полегче будет освоить: из языков Net технологий, при условии что необходимы поразрядные операции сдвига (умножение и деление занимает много времени), работы с отдельными битами, сборка объекта из байт (2 в 1 или 4 в 1 - для передачи double или int по RS232 от МК...).
3) Возможно ли компиляция программ Net в готовою сборку (по типу как VB6 - т.е. создается пакет с exe и всеми необходимыми библиотеками).
4) Обязательно для выполнения проектов с Net необходима Фраймворк? (полностью установленный).
3. Если ли помощник в VC (если писать в чистом С++) для ускорения написания простого кода (у нас весь интерфейс: это пару кнопок, окно с служебной информацией: что принято и сколько байт, состояние переключателей (приходят по RS232) и окно для просмотра полученных чисел (основное назначение программы получить,обработать (возможно алгоритмы ЦОС) и сохранить на диск. Я понимаю что лучше писать все самому - но для начала лучше если хоть какая та помощь будет.
4. Как уже говорил: есть опыт работы на С под МК и DOS - что наиболее быстро можно освоить? (Если два года изучать - а потом писать - это не есть хорошо - первую программу (не "Привет Мир" конечно), как я думаю надо написать уже через месяц под начало освоения).
5. Можно ли под компилятор на C++ писать на простом С: проще говоря я пишу мин. (или как я посмотрел создает сам компилятор болванку для консоли, а дальше я вставляю свои файлы на "С" - это возможно?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
pigah
12 / 12 / 2
Регистрация: 05.07.2009
Сообщений: 147
Записей в блоге: 1
03.08.2009, 21:41     Выбор компилятора по следующим критериям #2
поставь себе microsoft Visual Studio 2008 там все есть
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
03.08.2009, 21:42     Выбор компилятора по следующим критериям #3
1. Необходимо создавать просты приложения для среды Windows, с главным требованием: время отклика системы на воздействие и скорость выполнения программы.
Как напишешь - так и будет.
отрицательный - скорость выполнения слабая (нельзя работать в псевдореальном времени - необходима задержка примерно 50-100 мс).
Если тебе нужны приложения реального времени, то думаю, что Windows тут вообще не годится.
Обязательно для выполнения проектов с Net необходима Фраймворк? (полностью установленный).
Насколько я понимаю - нужен установленный Dot.Net Framework.
Можно ли под компилятор на C++ писать на простом С: проще говоря я пишу мин. (или как я посмотрел создает сам компилятор болванку для консоли, а дальше я вставляю свои файлы на "С" - это возможно?
Можно писать на C.
Можно часть файлов сделать file.cpp, а часть файлов сделать file.c
И собрать из них одну программу.
В конце концов программа на C может почти без изменений работать в C++.
Rififi
2359 / 1054 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
03.08.2009, 21:53     Выбор компилятора по следующим критериям #4
время отклика системы на воздействие и скорость выполнения программы.
Если время отклика неудовлетворительное, значит нужно купить более мощный процессор (потому что если даже ВВОД данных тормозит, это совсем печально никакой компилятор тебя не спасёт)

желательно с хорошим помощником по коду
это не задача компилятора, так что сие вряд ли...

нельзя работать в псевдореальном времени - необходима задержка примерно 50-100 мс)
Необходимо отказаться от платформы Windows/Unix и использовать операционную систему реального времени (VxWorks, Qnx, ...)

можно ли писать двоякие (смешанные приложения):
это не зависит от компилятора

что мне полегче будет освоить: из языков Net технологий, при условии что необходимы ...
Любой Си-подобный язык (C++, C#, ...)

Возможно ли компиляция программ Net в готовою сборку
Возможно

Обязательно для выполнения проектов с Net необходима Фраймворк?
Обязательно. Но иногда - нет

Если ли помощник в VC
Это как в МС оффисе, скрепка, которая дибильную лыбу давит ? :lol:

что принято и сколько байт, состояние переключателей (приходят по RS232)
нет. для этого существуют более другие средства.

Как уже говорил: есть опыт работы на С под МК и DOS - что наиболее быстро можно освоить?
DOS-знания можешь смело оставить на свалке истории

Можно ли под компилятор на C++ писать на простом С
можно
Evg
Эксперт CАвтор FAQ
17536 / 5774 / 370
Регистрация: 30.03.2009
Сообщений: 15,893
Записей в блоге: 26
03.08.2009, 22:12     Выбор компилятора по следующим критериям #5
> можно ли писать двоякие (смешанные приложения)

Можно. Пишешь отдельные компоненты, пишешь графический интерфейс, который эти компоненты дёргает, а потом пишешь консольный интерфейс, который дёргает эти компоненты. Сам понимаешь, что какая-то часть программы у тебя будет дублироваться, при этом работа графической программы НЕ означает, что консольная будет работать безошибочно.

Если критично время - .net сразу в печь, ибо это по сути дела интерпретация кода, а не native исполнение. Если приложение и впрямь realtime'овское, то windows, возможно, наихудший вариант для такой программы
леонтий
76 / 29 / 2
Регистрация: 03.08.2009
Сообщений: 66
03.08.2009, 22:20  [ТС]     Выбор компилятора по следующим критериям #6
Цитата Сообщение от Rififi Посмотреть сообщение
время отклика системы на воздействие и скорость выполнения программы.
Если время отклика неудовлетворительное, значит нужно купить более мощный процессор (потому что если даже ВВОД данных тормозит, это совсем печально никакой компилятор тебя не спасёт)

желательно с хорошим помощником по коду
это не задача компилятора, так что сие вряд ли...

нельзя работать в псевдореальном времени - необходима задержка примерно 50-100 мс)
Необходимо отказаться от платформы Windows/Unix и использовать операционную систему реального времени (VxWorks, Qnx, ...)

можно ли писать двоякие (смешанные приложения):
это не зависит от компилятора

что мне полегче будет освоить: из языков Net технологий, при условии что необходимы ...
Любой Си-подобный язык (C++, C#, ...)

Возможно ли компиляция программ Net в готовою сборку
Возможно

Обязательно для выполнения проектов с Net необходима Фраймворк?
Обязательно. Но иногда - нет

Если ли помощник в VC
Это как в МС оффисе, скрепка, которая дибильную лыбу давит ? :lol:

что принято и сколько байт, состояние переключателей (приходят по RS232)
нет. для этого существуют более другие средства.

Как уже говорил: есть опыт работы на С под МК и DOS - что наиболее быстро можно освоить?
DOS-знания можешь смело оставить на свалке истории

Можно ли под компилятор на C++ писать на простом С
можно
По 1. ответу: сменить не могу (выбрал Advantec: а у него либо WinXp Embedded либо Linux Ebedded - выбрал его как мин. цена на промышленное оборудование). Сменить процессор: очень тяжело (цена за модуль возрастает резко). Приходиться работать фактически на Р2 - 500 Мгц.
2. По смешанным приложениям: как не зависит от компилятора? (или визуальную часть пишем как dll и при необходимости загружаем и запускаем? Просьба расшифровать ответ.
3. Нет скрепка не нужна, но помощник (хотя бы чтобы класс создал с описанием кнопки не помешал бы, да и предложил на выбор функции поведения элемента).
4. Готовая сборка под Net - что это будет?
5. Зря вы так с DOS - писал для него на С, очень помогла когда начел писать для МК (различия минимальны, особенно если ARM7 или ARM9). Как я понял все что я умею - не куда не готиться? (но работа с числами, масивами, строками, структурами в С++ сильно меняеться?)

Добавлено через 7 минут 19 секунд
Цитата Сообщение от Evg Посмотреть сообщение
> можно ли писать двоякие (смешанные приложения)

Можно. Пишешь отдельные компоненты, пишешь графический интерфейс, который эти компоненты дёргает, а потом пишешь консольный интерфейс, который дёргает эти компоненты. Сам понимаешь, что какая-то часть программы у тебя будет дублироваться, при этом работа графической программы НЕ означает, что консольная будет работать безошибочно.

Если критично время - .net сразу в печь, ибо это по сути дела интерпретация кода, а не native исполнение. Если приложение и впрямь realtime'овское, то windows, возможно, наихудший вариант для такой программы
Насчет Windows - не свосем правы. Кардинальное отличие Embedded из нее выкинули (т.е. сбока под себя) все лишнее - резко возрастает скорость и устойчивость. (За год - не одной ошибки!!! Эти бы технологии в просто XP... ). Применяю ОС фактически только для принятия данных, обработка данных минимальная и их сохранения на USB Flash или передачи по LAN, но объем данных большой (до 10-20 Гб), хотя скорость поступления не высокая (от 1кБ до 10 кБ в секунду тип double).
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
03.08.2009, 22:23     Выбор компилятора по следующим критериям #7
(но работа с числами, масивами, строками, структурами в С++ сильно меняеться?)
Ты можешь писать как обычно на C.
А можешь изучить STL.
Rififi
2359 / 1054 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
03.08.2009, 22:24     Выбор компилятора по следующим критериям #8
леонтий,
3. Нет скрепка не нужна, но помощник (хотя бы чтобы класс создал с описанием кнопки не помешал бы, да и предложил на выбор функции поведения элемента).
Мне такие утилиты неизвестны. Есть Visual Assist, он помогает, но не до такой степени как ты обрисовал.

4. Готовая сборка под Net - что это будет?
dll или exe-файл

5. Зря вы так с DOS - писал для него на С, очень помогла когда начел писать для МК
Просто в Windows всё по-другому, начиная с того, что используется защищенный режим процессоров i386+
Знания по системного программировании в dos (драйвера, прерывания, функции OS) тебе не пригодятся в мире windows. В 95/98 существовала поддержка VDD - Virtual Device Drivers, которые могли общаться с dos-программами и даже расширять их функциональность, но где щас 9x? Прально, всё мхом поросло...
Alexandoros
228 / 66 / 4
Регистрация: 02.06.2009
Сообщений: 280
04.08.2009, 13:45     Выбор компилятора по следующим критериям #9
Покупай студию, под нее проджектов и рабочих мест больше.
oxotnik
1589 / 1066 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
04.08.2009, 13:50     Выбор компилятора по следующим критериям #10
по всем заявленным требованиям - любой компилятор подойдет
ЗЫ: интерпретатор С, если память не изменяет lua
леонтий
76 / 29 / 2
Регистрация: 03.08.2009
Сообщений: 66
04.08.2009, 16:29  [ТС]     Выбор компилятора по следующим критериям #11
Как я правильно понял - помощников нет для VC нет (Visual Assist - посмотрел, это несколько не то, я же предпологал несколько другое: помощь в создании меню: (не совсем понятно почему для него нет визуального редактора для меню?), задание форм для диалогов (т.е. фактически будут или нет), и создание доп. форм. - т.е. в отличие от Net - самый примитив.

Заказал стандартную версию - как я понял в ней нет редактора ресурсов - чем можно заменить? (при невысокой цене и не меньшей функциональностью (лучше большей конечно).

И большая просьба - дайте ссылку на сравнение языков C++ и C# - что и для каких задач лучше (и что более ближе к ANSI "C" (по синтаксису естественно)).
Alexandoros
228 / 66 / 4
Регистрация: 02.06.2009
Сообщений: 280
04.08.2009, 16:53     Выбор компилятора по следующим критериям #12
Цитата Сообщение от леонтий Посмотреть сообщение
Как я правильно понял - помощников нет для VC нет (Visual Assist - посмотрел, это несколько не то, я же предпологал несколько другое: помощь в создании меню: (не совсем понятно почему для него нет визуального редактора для меню?), задание форм для диалогов (т.е. фактически будут или нет), и создание доп. форм. - т.е. в отличие от Net - самый примитив.

Заказал стандартную версию - как я понял в ней нет редактора ресурсов - чем можно заменить? (при невысокой цене и не меньшей функциональностью (лучше большей конечно).

И большая просьба - дайте ссылку на сравнение языков C++ и C# - что и для каких задач лучше (и что более ближе к ANSI "C" (по синтаксису естественно)).
Visual studio 2008 professional имеет в себе все графические прибамбасы для создания диалогов, меню, иконок и т.п.

C# это совсем не с++ и не, тем более, С.
Он ближе к джаве.
леонтий
76 / 29 / 2
Регистрация: 03.08.2009
Сообщений: 66
05.08.2009, 01:07  [ТС]     Выбор компилятора по следующим критериям #13
Спасибо за ответы.
Остановился пока на написании на С++ консольных приложений критичных по времени и на С++.Net - для графический (время особо не важно - пока не научись с MFC).
Скачал VC Exspress, MSDN и всякой литературы.
Вот примерно что планирую (как пробную задачу) и возникли вопросы:
Комплекс состоит из трех приложений:
1) Консольное. Обрабатывает по RS232 бинарные сообщения от GPS и по таймеру (раз 10 мин.) синхронизирует системное время: используются всего 3 класса + собст. код на С и ассемблере (Сразу вопрос: от кода на ассемблере быстродействие не измениться? может компилятор какую библиотеку начнет загружать???). Каким образом можно два числа типа double для внешних программ (один раз в час - координаты для второго приложения)
2) Консольное. Принимает данные по RS232 раз в 1 сек и записывает в выходной поток (в файл: структура - время начало, координаты, данные по строчно - одна строка 5 мс.).
3) Графическое. Отображает данные от 2 приложения. Как лучше всего это сделать: возможно ли из незакрытого файлы считывать данные? Можно ли передавать (в виде массива данные из консольного приложения в графическое или скажем через указатель на начало массива (можно ли организовать внешний массив - т.е. массив данных с которым могут работать любые приложения).
oxotnik
1589 / 1066 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
05.08.2009, 10:48     Выбор компилятора по следующим критериям #14
Цитата Сообщение от леонтий Посмотреть сообщение
от кода на ассемблере быстродействие не измениться? может компилятор какую библиотеку начнет загружать???).
смотря насколько прямо напишешь, загружать ничего не будет. Современные компиляторы очень хорошо оптимизируют C++ код, поэтому вставки на асм-е - пустая трата времени.

Цитата Сообщение от леонтий Посмотреть сообщение
Как лучше всего это сделать: возможно ли из незакрытого файлы считывать данные? Можно ли передавать (в виде массива данные из консольного приложения в графическое или скажем через указатель на начало массива (можно ли организовать внешний массив - т.е. массив данных с которым могут работать любые приложения).
про файлы: см. в MSDN Memory-Mapped Files
можно по TCP гонять данные, можно через СУБД, все зависит от нагрузки
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.08.2009, 11:07     Выбор компилятора по следующим критериям
Еще ссылки по теме:
C++ (STL LIST SORT) Сортировка по некольким критериям
C++ Анализ почтового ящика и писем по критериям и сообщение на телефон
Найти в файловом списке студентов удовлетворяющих заданным критериям C++
Переписать с первого файла данные во второй файл, но по критериям C++
C++ Ошибка компилятора

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Rififi
2359 / 1054 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
05.08.2009, 11:07     Выбор компилятора по следующим критериям #15
3) Графическое. Отображает данные от 2 приложения. Как лучше всего это сделать
Посмотри здесь: http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx
обзор основных средств межпроцессорной коммуникации в Windows
Yandex
Объявления
05.08.2009, 11:07     Выбор компилятора по следующим критериям
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru