Миграция от Delphi к С++. Помощь.
P.S. Сейчас поставил себе Dev-C++. А каким IDE вы пользуетесь?
Заранее благодарю за возможный ответ. :D
[COLOR="Red"]Советую сначала попробовать начать с Visual C#, мне помогло[/COLOR].:)
что касается VC++ я пользуюсь Microsoft Visual C++ 6.0
DevC++ хорош только в консоли. Так что лучше возьми Microsoft Visual C++ 6.0.
Дерзай и да прибудет с тобой сила.:)
А я не советую. C# и С++ совсем разные.
Мне нравится книга
Клюшин Дмитрий Анатольевич Полный курс C++
Кратко и в тонкостях. И что мне больше всего нравится учит именно С++, а не программировать. Хотя сам я так и не выучил нормально етот язык, но ето изза того что с ним не роботаю.
Посмотрим.
Посмотрим.
Да я и сам бы рад ссылку узнать. Бумажная она у меня. Но в магазинах (в Украине) есть и не дорогая. Примерно 10%
2 Rebbit =) Спасип, осуществлю татаро-монгольский набег по книжным магазинам.
P.S. А как у вас дела обстоят со справкой? Я наверно в BDS Delphi был избалован контекстной помощью...
С хелпом все нормально---MSDN, а в инете мануалы воще завались:)
{edit}
Хм... Пошарил на МS и нашел там VS 2005 Express. Походу то самое, только без справки. Справка судя по их словам в полной версии которая и весит больше.
Возьмем к примеру Microsoft Visual Studio NET 2002
Делай так:
File->New->Project->Visual C++ затем выбирай тип проекта под Windows ->MFC Application и т. д.
eсли консоль Win32 Project(поставь пункт console)
под си я использую DevC++(использую тока под си;) )
И не парься ты из-за мн-ва языков в студии, это даже удобнее(не нужно
ставить дополнительные компилятьры:D )
За то количество сообщений на форуме, которое оставлено тут топикстартером, можно не только найти кучу информации в инете но и написать десяток простеньких программ на том же Dev-C++. :)
Простейшее решение - использовать среду разработки того же борланда но не делфи, а С++ - например. Например его 6 версия - вполне стабильна, и позволяет начинающему нормально в ней работать и решать большинство задач.
Можно конечно использовать монструозно-гиганские поделки типа BDS2006 или 2003-2005 и далее там от мелкософта - но они удобны в разработке больших проектов - а для начинающего ИМХО абсолютно бесполезны и никакого выиграша не дают.
Лучше всего выбрать тот компилятор который есть под рукой и который поддерживает стандарт а не заморачиваться со всеми советами. Кроме того, надо понимать, что знание среды разработки отнюдь не равно знанию языка и навыкам программирования. Привычка начинать в визуальных средах в дальнейшем сослужит весьма хреновую службу в плане понимания как механизмов языка, так и операционной системы. В результате и получаются программисты, классно кликающие мышкой по компонентам и абсолютно беспомощные без оной. ИМХО.
1) Я хорошо умею писать компоненты, которые и будут тыкатся мышкой на форму.
2) Я хочу сразу привыкнуть к той среде в которой буду работать и которая будет мне "про запас". Я знаю что пока MFC мне не будет нужен, но потом будет. Так не лучше ли сразу ставить Studio? Сейчас я начал с классики программирования - "консоль - файлы, память, ввод, вывод и т.д." Потом перейду к самим "классам" и непосредственно ООП. Так сказать решил учится по принципу перехода от Pascal к Delphi.
3) Если бы не те самые классы и компоненты то разработка ПО была бы сейчас на стадии каменного века. Они упрощают работу предоставляя тем самым больше времени на саму разработку, а не оформление.
P.S.
Если я не прав - поправьте.
Остановился на 2005 cтудии.
1) Я хорошо умею писать компоненты, которые и будут тыкатся мышкой на форму.
2) Я хочу сразу привыкнуть к той среде в которой буду работать и которая будет мне "про запас". Я знаю что пока MFC мне не будет нужен, но потом будет. Так не лучше ли сразу ставить Studio? Сейчас я начал с классики программирования - "консоль - файлы, память, ввод, вывод и т.д." Потом перейду к самим "классам" и непосредственно ООП. Так сказать решил учится по принципу перехода от Pascal к Delphi.
3) Если бы не те самые классы и компоненты то разработка ПО была бы сейчас на стадии каменного века. Они упрощают работу предоставляя тем самым больше времени на саму разработку, а не оформление.
P.S.
Если я не прав - поправьте.
Остановился на 2005 cтудии.
:)
Лучше или не лучше - решать только вам. По поводу "Я знаю что пока MFC мне не будет нужен, но потом будет" - это уже вряд ли, так как эта библиотека уже каменный век - и вряд ли в дальнейшем она будет использоваться более широко. Осуждать кого либо за выбор среды разработки я не собираюсь, у каждой есть свои преимущества, есть и недостатки.
Я бы порекомендовал бы все же на данном этапе не использовать среды типа студии или борланда - это очень мощный инструмент, но его использование на данном этапе может служить весьма сильным тормозом в дальнейшем, так как данные среды разработки ориентированы на быструю и эффективную работу профессионала - ситуация в данном случае примерно такая, как если бы вы учились водить машину на кольцевом треке - несомненно управлять автомобилем вы бы научились - но в городских условиях вам бы пришлось многое познавать на достаточно горьком опыте. Возможно, аналогия не совсем точная - но ИМХО отображающая реальную ситуацию. Или второй вариант - если у вас есть знакомый, хороший профессионал, который способен вам объяснить и показать - почему это делается так, с чем это связано ну и т.д. Хотя я думаю что в данном случае тогда бы и темы не было. :)
Все вышесказанное ИМХО и не нужно воспринимать мой пост как утверждение что лучше что хуже.
// add
Скачал Шилдта С++ для начинающих. К сожалению все примеры для новичка реально скомпилить только в Dev-C++. В MS Studio 6.5 у меня это 1получилость только после шаманства с хидерами... А в 2005 студии и вовсе не пошло. Насколько я понял все дело в разнице обьявления заголовочных файлов и приблудах "namespace std" именного пространства. => Опыт kot_ подтвердил себя - без помощи со стороны или опыта сложно осваивать Visual C++ в мощных студиях. Все спасибо за советы и заранее приношу свои извинения если кого то задел.
P.S. Кстати, вышеуказанная книга очень хорошо подходит начинающим. Правда там слишком уж легко все расписывается, но для совсем новичка в программировании именно то что надо. Если по данному топику будут заходить люди с такой же как и у меня проблемой рекомендую:
0) Герберт Шилдт - "Руководство для начинающих"
1) Брайн Оверланд - "С++ без страха"
2) Харви Дейтел, Пол Дейтел - "Как программировать на С++"
3) Алексей Крупник - "Самоучитель С++"
Все книги слишком просты, но вникнуть в суть языка позволяют очень быстро. Конечно потом будет нужна более серьезная литература, но я со своим скудным опытом ничего не могу порекомендовать.
Ccылки и прочее постить не буду - их легко найти в гугле.
Было бы клево работать с языками в родной среде
Попробуй Borland C++ Builder 6.0 - Среда 100% копия Borland Delphi
позже названия с авторами кину, всё ясно и понятно =)
позже названия с авторами кину, всё ясно и понятно =)
Ну без Самого никуда.А вот без Дейтела можно и обойтись,есть книги и получше,например Стэнли Липпман(именно его и Страуструпа рекомендуют начинающим все гуру,и Майерс, и Саттер и др.).А вообще вот списочек классиков.
P.S.Я поясню свою мысль о книге Дейтелов...На странице 21 они пишут о главе ,посвященной изучению STL так:
Это возможно одна из наиболее важных глав в книге...
Так вот эта глава как раз написана,имхо,слабо.:( На все STL отведено всего 85 страниц.Ни одного рульного примера,как у Самого и Джосьюттиса.Далее еще одна тема - Шаблоны С++.Отвели 13 страниц !!! Мрак. Вандервурд и Джосьюттис книгу написали о шаблонах в 500 с лишним страниц.Ну не знаю,не знаю...А называется книга Дейтелов "Как программировать на С++".
а СТРАУСТРУП - это... ну слов даже нет :))))))))) а гуру мне только его и советовали читать :)
Вначале тоже использовал эту IDE, затем перешел на Code::Blocks IDE, так как создаёт меньше мусора из файлов, закрывается быстрее и т.д. Ну и радует, что это не заброшенный проект, как Dev-C++ (хотя мне хватает старой версии Code::Blocks rc2).
А еще есть NetBeans 6.0 и Visual C++ 2005/8 Express....
С Visual C++ 2005 Express начинал, но видно не установил Windows Platform SDK и проекты, созданные мной в этой среде не открывались на других компьютерах. Кроме того, мне хотелось найти более компактную среду.
NetBeans 6.0 показался интересным. Возможно, как-нибудь попробую с ним поближе ознакомиться. Пока есть вопросы. Например, может ли эта IDE поздавать полноценные win-приложения? Есть ли встроенный редактор ресурсов?
Все-таки трудновато без редактора ресурсов вслепую создавать диалоговые окна... Пока пользуюсь вот этой утилиткой
http://www.radasm.com/resed/
но она немного глючноватая.
Я сам студию поставил чтоб C++ освоить, до оконных аппликаций еще не дошел, но как я понял не под .NET. в студии код для формы и компонентов полностью ручками надо писать- MFC или WinAPI. А в билдере VCL есть, можно фейс натыкиванием кнопок и прочих рычагов на форму быстро слепить. Чем плоха идея, не понимаю. Вроде именно это больше всего критикуется. И еще мат библиотеки написанные на паскале..
Я сам студию поставил чтоб C++ освоить, до оконных аппликаций еще не дошел, но как я понял не под .NET. в студии код для формы и компонентов полностью ручками надо писать- MFC или WinAPI. А в билдере VCL есть, можно фейс натыкиванием кнопок и прочих рычагов на форму быстро слепить. Чем плоха идея, не понимаю. Вроде именно это больше всего критикуется. И еще мат библиотеки написанные на паскале..
Я так думаю...
Некоторые думают, что человек использующий технологию визуальной разработки перестает думать и полагается только на IDE, у него отсутствует какое-то ни было планирование при разработке проектов (а типа нахер надо, IDE и так структурирует программу). Не знаю откуда вялось такое мнение, но оно явно ошибочное. Никто не мешает использовать общепринятые подходы при разработке программ на Делфи/Билдере. Совершенству предела нет, встречал "собственные" варианты RTL, отладчика и компоновщика для Билдера, а если человек головой только ест, то ему не поможет никакая другая среда, технология, язык и т.д.
Всегда говорят о тупокликопрограммерах на Дельфи, но обычно недоговаривают о "второй" и достаточно многочисленной части программистов Дельфи/Билдера, тех кто пишет компоненты, библиотеки, мастера. Поэтому "правильый клацкатель по компонентам" со временем должен перейти во вторую категорию, разрабатывая свои компоненты, библиотеки, мастера облегчая себе еще больше процесс разработки. Ведь основной смыл IDE Дельфи именно в этом - расширяемость-до-бесконечности, а не бездумное кидание компонентов на форму (хотя на начальном этапе от этого не уйти).
Мое отношение конкретно к Дельфи - никакое, сам не пишу на нем, но активно пользуюсь исходниками т.к. паскаль понимаю (интуитивно:)).
Ну, а топикстартеру скажу воспользуйся советом Кота - получишь С++ без смены привычной IDE, библиотек и т.п.
Я никого не буду позорить - каждый делает, как считает правильным. Хочу высказать только не совсем сформировавшуюся мысль.
Вслепую кодить диалоги неудобно, обычно. Но по мне, так лучше, если все диалоги, окошки, контролы и прочие виджеты, которые удобно лепить в визуальном редакторе, будут описаны в каком-либо файле ресурсов, например, формата XML или rc (не помню, как правильно зовется). Чтобы вся эта деребедень не лезла в мой код. А коду была бы доступна соответствующая структура с именами.
Таким образом, мне будет проще менять структуру своего кода, не задумываясь, как это воспримет утилита по созданию интерфейса.
Как-то так.
Вслепую кодить диалоги неудобно, обычно. Но по мне, так лучше, если все диалоги, окошки, контролы и прочие виджеты, которые удобно лепить в визуальном редакторе, будут описаны в каком-либо файле ресурсов, например, формата XML или rc (не помню, как правильно зовется). Чтобы вся эта деребедень не лезла в мой код. А коду была бы доступна соответствующая структура с именами.
Да дело даже не в том, в каком виде хранится форма: xml, xaml, в виде кода (как в WinForms) - в каждом случае можно легко превратить проект в фарш. Дело в связности кода и интерфейса, с этим я согласен полностью. Наверное хранение интерфейса в текстовом виде больше подталкивает к написанию некой прослойки между UI и бизнес-кодом. Я последнее время в более-менее серьезных проектах стараюсь сразу реализовывать MVC - так что для меня не имеет особого значения как именно задается интерфейс. Основному коду на интерфейс чаще всего глубоко все равно, их взаимодействие идет через контроллер, и в случае рефакторинга изменения локализованы в одной-двух функциях.
Для тебя - да. А для программы, которая создает интерфейс нужен какой-то известный вид кода. Например, прога создала тебе код с GUI на C++, ты его изменил, названия контролов поменял, что-то куда-то заагрегировал, и т.д.
После этого прога должна суметь распознать твой код, чтобы ты мог в случае надобности поправить интерфейс мышкой. И после распознания она должна так поправить код, чтобы не поломать твою новую структуру.
Намного проще, если прога выдает код типа XML (как это делается во многих случаях). Тут программист не вступает в конфликт с редактором интерфейса.
Естественно, конфликта не будет если всё делать кодом, без редактора. В некоторых случаях так получается даже быстрее.
После этого прога должна суметь распознать твой код, чтобы ты мог в случае надобности поправить интерфейс мышкой. И после распознания она должна так поправить код, чтобы не поломать твою новую структуру.
Хм, с этой точки зрения согласен, что xml выигрывает, я про это даже не думал. В принципе VS неплохо разбирается, что происходит если в создании компонентов что-нибудь забыть написать, но с xaml конечно все намного красивее.
Только я думал, что мы про отделение UI от кода. Например, в WPF также привязываются обработчики к событиям элементов интерфейса, и можно спокойно делать спагетти-код :)
Наиболее адекватные аргументы: за своеобразную реализацию стандарта C++, отставание сгенерированного кода по скорости исполнения, по сравнению с VC++ и gcc, а также за сильную связанность с VCL.
Вообще о C++ Builder 6 можно забыть - он морально устарел. Актуальная среда к бывшему борландовскому C++ сейчас - это CodeGear RAD Studio (год - подставить, они их штампуют как рыбные консервы).
З.Ы. Лично я ничего против компоненто-кидания на форму не имею - сам начинал программировать в Delphi 5.