Чем принципиально отличаются VC++ 6.0 и VC .net

love_4ever

a?

evgen5555

В студии для .NET Managed code можно писать.

stm7481822

Не уверен, но вроде в VC6 пишешь на С++, а в VC .Net пишешь на С#.
А вот там уже отличия серьезные

markmsk

В VC.NET тоже есть С++. Только он отличается от 6-го

voronetskaya

в 6й студии не покатит такой код -


for (int i=0;;){;}
for (int i=0;;){;}


хотя прекрасно покатит в 7й

tokuchu

Кажется, в 6-й где-то галочка есть, чтобы она это правильно обрабатывала. Но тогда ты получишь дохрена ошибок при компиляции с некоторыми MS библиотеками, которые используют эту фичу.

evgen5555

Cтудия .NET по умолчанию генерит IL-код для всех программ, написанных в ней, чтоб во фреймворке работать. А шестая сразу нэйтив бабацает.

freezer

тогда можно сделать так:


#define for if(false) ; else for


чтоб стандарту удовлетворяло

Dasar

> Cтудия .NET по умолчанию генерит IL-код для всех программ, написанных в ней, чтоб во фреймворке работать.
Бред.

evgen5555

Опа, папаша вылез . Ну-ка, поясни детям, что и как надо говорить!

Dasar

FAQ: Что такое VS.Net.
Седьмая версия Visual Studio-и включает в себя три (не считая VB и экзотики) "компилятора": C#, MC++ и VC++. Под "компилятором" я здесь понимаю не только сам компилятор, но и библиотеки, рантайм, поддержу в студии и т.д.
Эти три "компилятора" по большому счету, никак не связаны между собой (особенно C# и VC++ и используются для решения разных задач.
Начнем с конца:
VC++ "компилятор" - это немного улучшенная версия старого доброго VC6. Из основных улучшений: более лучшая поддержка стандарта языка C++ и чуть лучшая оптимизация кода.
Стандартная библиотека MFC (MFC7) почти не изменилась,
ATL (ATL7) изменился сильно, но в основном в сторону добавления новых классов для создания Web-каких-то примочек. Из серьезных изменений - это добавление ATL::CString.
Под новый ATL был выпущен чуть прилизанных WTL7, без каких-либо кардинальных изменений.
[skip]
Managed C++ "компилятор" - используется для написания кода на C++ для .Net-framework-а.
В чистом виде почти не применяется, а используется как вспомогательный инструмент в следующих случаях:
1. Это когда мы спускаемся с C# "вниз": хотим использовать низкоуровневую оптимизацию, стыковку с legacy-кодом и т.д., т.е. для тех вещей, которые на C# у нас не получаются или получаются плохо.
2. Либо когда мы, наоборот, берет старый код и пытаемся в нем использовать всю прелесть .Net-framework-а. В этом случае берется старый код и компилируется с использованием managed extensions for C++ (опция /clr далее потихоньку старый код переписывается с использованием новых фич.
Твое замечание правдиво только для MC++, причем с существенными оговорками.

bastii

Да, вроде VC7 компилирует в IL, но это не тот, что в .NET. Просто теперь они оптимизируют код во время линковки. Т.е. вроде этот IL, только в объектниках сидит.
А отличий много. ATL переписали. IDE совсем другая, не такая убогая, что была VS6. В MFC ваять удобнее. Вообще лучше залезть на соответсвующий сайт и посмотреть.

okunek

Имхо у них классвизард немножко галименький, мне не очень нравится. Хотя в целом нормально.

freezer

Из серьезных изменений - это добавление ATL::CString.

хм... я-то думал - атрибуты...

1234554321

Post deleted by glebius

batmanov

В продолжение разговора...
В Visual C++ 6.0 была предоставлена классная возможность автоматически удалять метод из окна ClassView.
Я недавно перешел на .NET 2003. Но такую фичу я там не обнаружил. Конечно все можно сделать ручками, но природная лень заставляет до последнего искать более простой путь. Особенно геморно удалять обработчики сообщений.
Есть ли такая возможность вообще? И если есть как ей воспользоваться?

lenasoleil76

нормальная работа с обработчиками сообщений осуществляется через properties window тыкаешь внутрь определния своего класса и он высветит пропертисы для этого класса ( Rem: разговор про наследников CWnd ) среди этих пропертисов: возможность создать удалить обработчик всех виндовских событий ( кнопочка там есть подходящая она переключает на сообщения, и там выбирай нужные, при этом там же создаются и отражения сообщений также кнопочка молния создает на выбор обработку командного сообщения, ( не знаю насчет кнопок, но меню и аксселераторы точно также кнопочка квадратик добавляет Overrides там типа PreCerateWindow, DrawItem и т.д. также легко удаляются через это окно все добавленные методы ( только удаление не настоящее, а просто они все закомментируются ) .
по поводу оптимизации кода большая неправда - там просто ох$%тельная оптимизация кода, семерка рвет шестую вместе с интел компайлером как инндрикатерий грелку..

lenasoleil76

среди недостатков семерки - покоцанный Object browser , но управлять CWndшными классами очень приятно, еще правда раздражает пока не привыкнешь то, что при редактировании ресурсов на двойной щелчок она зараза создает обработчик клика для этого итема, а для того чтобы свойства показались тыкнуть надо только разок..
правда я не очень знаю как в шестой устроен визард работал без него

123anna

Ну я могу написать, чем отличается собственно язык С++.
Но из обсуждения понял, что автора больше интересуют свойства среды разработки.

mr82

Автор сейчас в академе, так что я за него.
Нас инересовала не только среда разработки, хотя и она тоже. В большей степени инетресует компилятор и перспективы програмипрования на .NET.
Зачем програмировать на .NET, ведь можно и на VC6.0 всё, что надо писать, или нет?
Плюс, интересуют отличия самого процесса создания приложений. Т.е. работа с уже упомянутой средой рзработки, отличия в синтаксисе и, возможно, сама концепция написания программ.

6yrop

Net -- современная платформа, а чтобы понять самому плюсы и минусы надо попробывать........

evgen5555

На .NET программы пишутся в N раз быстрее, (N >= 1.5, зависит от интеллекта)

bastii

Думаю, что со временем дотНет сильно оторвется от других старых технологий. Думаю прг под WinFX будет с N>5.

mr82

А имеет ли смысл сначала освоить vc60 и mfc60 соответственно, а потом переходить к .net?

evgen5555

Имеет, конечно.

bastii

Лучше забыть этот ужас под названием VC6.0 (без Visual Assitant вообще прогать невозможно). В 7ке прекрасно можно прогать и не под дотНет. Что мешает прогать под MFC или ATL в VC7.0.
Оставить комментарий
Имя или ник:
Комментарий: