Visual C++.NET и Visual C++6.0

Для любителей обсудить что круче Linux или Win32, Java или C#.

Модератор: Duncon

Ответить
kif
Сообщения: 1
Зарегистрирован: 07 янв 2005, 07:44

07 янв 2005, 07:47

Сейчас учу самостоятельно C++ на Visual C++6.0. В чем основные преимущества Visual C++.NET? Насколько сложно перейти с Visual C++6.0 на Visual C++.NET?


У меня уже есть Visual C++ 6.0 SE (стандартное издание)
Поставил себе Microsoft Visual Studio .NET 2003. Смотрю там всё совсем по другому. Даже консольное приложение создается как-то не так(добавляются новые странные файлы). Стандарт ANSI ушел вообше в небытие.
Можно ли с помощью Visual C++.NET 2003 построить приложение не .NET т.е. чтобы оно хорошо работало без .NET Framework?
И при одной мысли, что умрет WinAPI и традиционное программирование, у меня перед глазами словно рушится мир. Фактически то, что сейчас учишь - всё история, всё напрасно. Не уйдет ли C++ со схоих лидирующих позиций, не станет ли он историей.

Да я слышал, что теперь нет необходимости заботится о высвобождении памяти, но ведь мы знаем, что прошлые попытки этой идее приводили к менее эффективным приложениям. И на кокой черт сдалась эта "виртуальная машина", ведь связь между разными языками можно было бы реализовать по другому-->Сначала генерируется некий байт-код, независимый от платформы, а уж потом он преобразуется в машинный код конкретной системы, т.е. наши файлы *.exe уже будут как и раньше в машинных кодах и запускаться напрямую.

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

В общем, все эти мысли наводят на меня грусть, тоску. Может кто-то объяснит, что .NET - это не плохо, это даже, наоборот, очень хорошо, что от этого выиграют все и очень много?

Честно сказать, самое главное, что меня беспокоит( возможно только оно одно и есть), это то, что наши программы будут не в машинных кодах, а в кокой-то фигне, которую будет выполнять среда .NET. Поэтому, пожалуйста, ответьте можно ли с помощью Visual C++.NET 2003 построить приложение не .NET?
Kolinus
Сообщения: 449
Зарегистрирован: 23 авг 2004, 14:02
Откуда: Минск

10 янв 2005, 18:47

можно.
там исправлено много багей в реализации Стандартной библиотеки.
говорят также что компилятор лучше - я на себе не ощутил, поэтому ничего от себя добавит не могу.
А по поводу байт кода - кто-то что-то придумал
а как же майкрософт стерпит что у него нет такого - он напишет "свое но только круче"
http://fog.od.ua/humor/istoriya_program ... voluciy_ot - в дополнение :)
вообще идея байт кода берет свое начало в скриптовых языках (имхо)
только там шла переносимость на уровне исходного кода, а в нет и яве - на уровне компилированного кода, что по идее повышает производительность по сравнению со скриптовыми языками, но снижает по сравнению с обычными.
С++ как и С на мой взгляд никуда не денется - ядра осей то надо на чем-то писать, да и сервера, сетевое и системное ПО тоже писать надо на чем-то.
Вдобавок есть класс задач, где за производительность борятся всевозможными путями - там и яве и нет дорога заказана (имхо).
Но лично мое мнение что многие современные типичные бизнес проекты намного проще делать на яве (нет - не знаю не юзал)
В SAD - все в SAD.
Absurd
Сообщения: 1213
Зарегистрирован: 26 фев 2004, 13:24
Откуда: Pietari, Venäjä
Контактная информация:

11 янв 2005, 11:56

Template Partial Specialization там есть? И как оно?
Loki собирает?
2B OR NOT(2B) = FF
Kolinus
Сообщения: 449
Зарегистрирован: 23 авг 2004, 14:02
Откуда: Минск

11 янв 2005, 17:50

без понятия там поправилитакие баги как (убедился на собственном опыте)
передача листов, карт и т.д. (речь идет о STL) из длл в основную программу и наоборот - в 6 передавался только первый элемент и прога падала
В SAD - все в SAD.
Absurd
Сообщения: 1213
Зарегистрирован: 26 фев 2004, 13:24
Откуда: Pietari, Venäjä
Контактная информация:

11 янв 2005, 18:25

без понятия там поправилитакие баги как (убедился на собственном опыте)
передача листов, карт и т.д. (речь идет о STL) из длл в основную программу и наоборот - в 6 передавался только первый элемент и прога падала
Ясен перец - в длл одна С++ куча, а основной проге - другая.
Если надо - можно написать свой аллокатор, который работает через HeapAlloc().
Тогда контейнер, использующий этот аллокатор будет складировать данные в win32 куче.
2B OR NOT(2B) = FF
Kolinus
Сообщения: 449
Зарегистрирован: 23 авг 2004, 14:02
Откуда: Минск

11 янв 2005, 18:34

Возможно.
о это была именно МС грабля - потому как в том проекте взяли реализацию stlport и все встало на свои места.
И нет студия - тоже все собрала и запустила корректно уже на своей родной STL реализации
В SAD - все в SAD.
Plastic
Сообщения: 15
Зарегистрирован: 06 дек 2005, 10:41
Контактная информация:

06 дек 2005, 14:16

что вообще за бред - "а в нет и яве - на уровне компилированного кода, что по идее повышает производительность по сравнению со скриптовыми языками, но снижает по сравнению с обычными. "???
Человек спрашивал про Visual Studio .NET в составе которого есть мало чем отличающиеся от 6-й версии Ся!!!
Перешел с VC6 на .NET и никакой разницы не заметил, при том что пишу (на С++ в составе .NET) довольнотаки требовательные к скорости приложения - игры.
А про Яву ессно и так все понятно... :) она для того и создавалась.
Absurd
Сообщения: 1213
Зарегистрирован: 26 фев 2004, 13:24
Откуда: Pietari, Venäjä
Контактная информация:

06 дек 2005, 16:29

Код: Выделить всё

void setBit(unsigned char *buff, unsigned __int64 pos, bool val) {	
	const size_t offset = static_cast<size_t>(pos >> 3);	
	if (val) {
		*(buff + offset) |= 1 << (pos & 0x7);
	} else {
		*(buff + offset) &= ~(1 << (pos & 0x7));
	}
}
Попробуй скомпилировать этот код 6-кой и 7-кой с генерацией ASM-файлов. Разница кардинальная. Шестерка генерит совешенно уродский код с парой вызовов библиотечных функций.
2B OR NOT(2B) = FF
Ответить