Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.97/125: Рейтинг темы: голосов - 125, средняя оценка - 4.97
0 / 0 / 0
Регистрация: 20.01.2009
Сообщений: 118

Чем C++ лучше Visual Basic?

12.03.2009, 23:34. Показов 24991. Ответов 66
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Обращаюсь ко всем, кто программирует на C++.

Кто мне может просто и ясно объяснить, в чем заключаются преимущества и 'мощность' языка C по сравнению с Visual Basic?

Пока что я только знаю, что C является языком с более сложным синтаксисом и что, как написано в MSDN, почти все первоклассные программы писались на Visual C++. А какие именно есть возможности в языке C, которых нет в других языках вроде VB?

Кстати, как пишутся сложные игры, как Age Of Empires или другие стратегии? Реально их написать на Visual Basic или нет?

И еще: чем отличаются C, Borland C и MS Visual C++?

Спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.03.2009, 23:34
Ответы с готовыми решениями:

Новичок пришел с basic на с++ builder и хотел бы узнать что лучше и чем.
И так пришёл новичок с бейзика на с++ билдер и хотел бы узнать и местных диванных гениев, что лучше и чем. А также самый нужный для...

В чём отличия С++Builder 6 и visual c++ 6. И что лучше юзать????
В чём отличия С++Builder 6 и visual c++ 6. И что лучше юзать???? Не магу понять какая разница между ними. И там и там есть визуальный...

Чем отличется С++ Builder от Visual C++ (и от Visual C++.Net)?
Чем отличется С++ Builder от Visual C++ (и от Visual C++.Net)? Говорят, что С++ Builder - это переходная ступенька между Delhpi и Visual...

66
0 / 0 / 0
Регистрация: 22.03.2009
Сообщений: 40
08.04.2009, 17:26
Студворк — интернет-сервис помощи студентам
Дебаг медленнее компиляции, поскольку он ещё проходит стадию JIT-компиляции во время выполнения.
Может, кому-то синтаксис C# покажется лаконичнее, а кому-то синтаксис VB.NET понятнее... Это то же самое, что спор о курице и яйце...
0
0 / 0 / 0
Регистрация: 22.03.2009
Сообщений: 40
08.04.2009, 17:33
А на самом деле в том, что касается игрушек, разница в скорости кода несущественна - ведь основную работу выполняет библиотека OpenGL или DirectX (кстати, что из них лучше?), а программа всего лишь пересылает ей команды.
Я делал игру на VB.NET с использованием OpenGL и ничего, быстро работает... :=)
Кстати, JIT-компиляции VB.NET и C# принадлежат в равной степени. А если скорости дебага и различаются - это ещё не аргумент.
Что касается перегрузки операторов, то в следующей версии (то есть в VS.NET 2003) она появится в VB.NET, а документация XML будет создаваться надстройкой.
0
Ghost
08.04.2009, 18:49
С++ vs VB.NET/C# для игр.

Графика.... OpenGL vs DirectX - тут все ДОСТАТОЧНО понятно.

Господа - а AI вы в игрушке на чем писать будете? На Java? Удачи. Intel & AMD вам спасибо скажут.
noir
08.04.2009, 21:59
AI это еще полбеды. Ведь collision detection, и вообще физический движок OpenGL и DX не содержат, а вычислений там почти столько же, сколько в графике... Разве что взять сферических игроков в кубическом уровне, но нынче это уже моветон...

'отрывабельные' руки-ноги, реальная баллистика, 'правильные' столкновения в шутере...

Реалтаймовый просчет аэродинамики, как в 'Ил-2'

Футбол, круче, чем у EA...

Все это на асме надо писать, причем сразу векторном...

'Сферы в вакууме', когда их много, опять-таки, на Басике ручной оптимизации потребуют горы, а результат будет хуже, чем на С, имхо...
2 / 2 / 2
Регистрация: 23.06.2007
Сообщений: 399
09.04.2009, 01:01
И все-таки, что необходимо для работы програмы (dll,ocx), созданной на VB.net или C#
Будет ли нормально работать в Win98?
0
pl
51 / 17 / 6
Регистрация: 18.05.2007
Сообщений: 1,322
09.04.2009, 10:09
Вставлю от себя на счет производительности:
Написал две элементарные проги (стандартные EXE) в которых стоит простой цикл FOR от 0 до 1000000х1000 и проверил скорость выполнения готовых программ (а не прогон этих программ из под среды разработки!) написанных на VB6 (при компиляции были сняты все флажки в доп настройках) и Delphi6. Результат: Delphi ~2 сек., VB ~3 сек. Желающие могут проверить еще и на C++.

Код VB:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub Command1_Click()
    Dim i As Long
    Dim j As Long
    Dim l As Long
    Dim dtB As Date
    
    Screen.MousePointer = vbHourglass
    dtB = Now()
    For i = 0 To 1000000
        For j = 0 To 1000
            l = 0
        Next
    Next
    Screen.MousePointer = vbDefault
    MsgBox dtB & '-' & Now()
End Sub
Код Delphi:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure TForm1.Button1Click(Sender: TObject);
var i: longint;
    j: longint;
    l: longint;
    d: string;
begin
    Screen.Cursor := crHourGlass;
    d := DateTimeToStr(Now);
    for i:=0 to 1000000 do
        for j:=0 to 1000 do
            l:=0;
    Screen.Cursor := crDefault;
    MessageDlg(d + '-' + DateTimeToStr(Now), mtInformation, [mbOk], 0);
end;
0
Ghost
09.04.2009, 11:34
Не вполне корректный подход.
Мы говорили о математике?
Здесь (в этих примерах) выполняются следующие операции: mov, add, cmp, jmp (or) jne
mul, div, f????? тут не выполняются. Так что выводы делайте сами.
А хороший C++ компилятор (с хорошим оптимизатором) еще в 1996 году подобные вещи преобразовывал так:

long l(0);

все.

На асме это кодируется как : mov [REFERENCE], 0
выплняется - дай бог памяти - максимум за 10 тактов ЦПУ (86).
Будем дальше мерить быстродействие C++ vs VB/Delphi?
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
09.04.2009, 12:17
to oldpasp

Смотри http://relib.com/forums/topic.asp?id=771644
0
pl
51 / 17 / 6
Регистрация: 18.05.2007
Сообщений: 1,322
09.04.2009, 14:13
Откопал интересную статейку
«О назначении Visual Basic в сравнении с другими языками»
http://www.vbrussian.com/Article.asp?ID=47
0
1 / 1 / 0
Регистрация: 09.10.2007
Сообщений: 596
09.04.2009, 16:51
Нет, темa, тaки-дa, пoшлa.

Всякoму пoнятнo, чтo нa C++ тaк мoжнo нaписaть прoгу, чтo oнa сooтв. aлгoритм нa VB oбгoнит кaк стoячегo. Некoтoрые вещи нa VB вooбще не сделaешь в силу oгрaничений языкa. Кстaти, у нaс, тoвaрищи, есть aльтернaтивa Microsoft Visual Basic? Real Basic - дa? VB сoздaн кaк RAD для ТЕКУЩЕЙ кoмпoнентнoй мoдели oт Microsoft. Кaк тaкoвoй мы все егo и пoльзуем. Не бoльше и не меньше.

И C++ дaёт бoлее быстрый кoд - не oт тoгo, чтo пaрные oргaны (... уши) у Кернигaнa, Ричи и Стрaуструпa были бoльше, чем у Билли, a oт тoгo, чтo этo именнo C++.
НO! Мы ведь мoжем всё испрaвить... Зaкупaется вaгoн вoдки, берётся группa прoгрaммерoв. VB.NET зa oснoву.
Рaсширить вoзмoжнoсти языкa aрифметикoй укaзaтелей, пoлнoй перегрузкoй oперaтoрoв, шaблoнaми... Пoтoм присoбaчить препрoцессoр к oднoму месту и - вoт oнo чудo XXI векa... Лень рaсширять тaк дaлекo - ёлки-пaлки дa хвaтит oднoй aрифметики укaзaтелей и oчистить прoстые действия oт их сaкрaльнoгo смыслa (никaкoгo QueryInterface пo Set и т.д.) И, этa, aссемблерные встaвки мoжнo зaкoлбaсить, чтoбы кaйф был oргaзмaтический...
Предстaвили? Хoтите тaкoе?

2noir В кaкoм этo VB мoжнo перебить пoведение IUnknown? В VB6 тoчнo не пaшет. Пoпрaвь, удивлюсь.

2Rider Не пoдкoлкa, a вoпрёс. Кaкими средствaми читaлись фaйлы нa VB и Delphi? Мoжет чей-тo не тaк? Уж бoльнo рaзницa бoльшaя.
0
Rider
09.04.2009, 17:08
тупо в голову - стандартными методами, что того что другого
потом по строчкам бежали... (знаю что глупо :Р сказал же что тупо в голову)
давно это было (относительно), поэтому деталей не помню, но то что все без изворотов писалось это 100%... единственно что в дельфях мог наворотить это pchar заместо стд стрингов.

вот то что вб чуть не умер от обжорства памятью (вместе с компутером) это точно... вб вообще не очень хорошо память расходует
noir
09.04.2009, 17:25
IUnknown, естессно можно только в С переопределить... Но разговор там шел о подсчете ссылок _вообще_, вот я и сказал, где VB их считает
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
09.04.2009, 18:23
1. А что народ скажет по поводу того, что имеет смысл остановить свой выбор по поводу изучения языка на С++ хотя бы потому, что этот язык как платформо-, так и фирмо- независимый, в полной противоположности от Visual Basic?

2. И еще, вопрос ко всем, я так и не услышал ни одного факта подтверждающего постоянные утверждения о том, что C++ сложнее в изучении, чем VB? Хотелось бы хотя бы один конкретный пример.

3. Безосновательное утверждение о быстроте разработки приложений на Visual Basic по сравнению с C++ также остается для меня туманным.
0
ManiaK
10.04.2009, 16:08
Sikon: Я с тобой не согласен. Библиотека ( будь то OpenGL или DD) выполняет самую малость - предоставляет програмеру доступ к карточке посредством драйвера. Остальное (Рисование сфер, триугольников, квадратов и т.д.) производится программой, которая оперирует простейшими коммандами ( задать источник света, нарисовать воксель и т.п.). Ну я уже молчу про то, что сказали Ghost и noir - путёвое AI мона накатать только на C++ (в крайнем случае - на Delphi). Естественно это справедливо если у тебя не стоит за спиной шкаф из 50 штук Pentium 4 Titan по 3 гига каждый, да столько же geForce'ов
:-)))))))))))))))))))))))))))))))))))))))) )))))))))))))))))))))))))
stream
11.04.2009, 17:57
ну че ещё не надоело обсуждать всё это ...

2boombastik:
конкретный пример того что Visual Basic легче С++:
возьмем модель COM
возьмем простейший оператор new (New) ...
в VB и в C++ эти операторы выглядят одинаково,
но их глубинная семантика различна
как это проявляеьтся?
попробуй оператором new языка С++ создать
новый экземпляр двоичного объекта
в VB же New позволяет автоматически загрузить
и получить объект от бинарного сервера ...

в общем оператор New в VB производит тот же набор вызовов,
которые на С++ надо писать вручную

так что вот так ...
0 / 0 / 0
Регистрация: 22.03.2009
Сообщений: 40
11.04.2009, 18:20
Ну, в отношении AI я пока даже не нуль, а -1, так что промолчу... Но всё-таки попробую написать его на VB, хоть все и говорят, что это невозможно... Если человек задался целью, для него нет ничего невозможного, на чём бы он ни программировал - на VB, Delphi, C++ - да хоть на ассемблере...
0
Rider
11.04.2009, 18:28
2Sikon:
есть целеустремленность и напористость, а есть твердолобость и упертость. так вот написание AI на VB это скорее второе чем первое имо.
Невозможного ничего, нет вы правы, только путь достижения цели равно как и затраты на достижение ее ой как различаются.....
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
11.04.2009, 19:00
to stream:
Во-первых, COM ничего общего с языком программирования не имеет. COM - это технология от Microsoft, позволяющая повторное использование бинарных компонентов, написанных как на разных языках программирования, так и под разными средами (имеется ввиду IDE, напр. Visual Basic, VC++, Borland C++ Builder,..).
Однако, эта технология имеет крупный недостаток - она привязана к одной операционной системе: Win32. Именно поэтому следующим шагом Microsoft стала .NET платформа.

То что реализация этой технологии в Visaul C++ несколько более сложная и более гибкая, чем в Visual Basic, это не указывает на слабость языка программирования C++, а лишь на попытку Microsoft дать хорошую рекламу VB. Возьмите Borland C++ Builder и увидите другой подход от фирмы Borland для реализации и поддержки технологии COM все для того же языка C++.

Во-вторых, у меня есть один документ (могу выслать, если интересно). Он называется 'ADO и COM в Visual Basic и Visual C++'. Вот лишь выдержка из него:

'...
Из выше приведенного листинга видно, что каждой строке кода на C соответствует строка кода на VB. Правда для того чтобы написать этот код на C++ пришлось потрудиться несколько больше, чем при написании той же программы на VB. Смотрите приложение 1 - Описание классов dyk_variant, dyk_bstr, и dyk_qiptr. Классы dyk_variant, dyk_bstr, dyk_qiptr пришлось создать, что бы скрыть некоторые рутинные операции с переменными тип BSTR, VARIANT и т.д.
...'

То есть ничего сложного даже с COM и даже для VC++ нет.

С уважением, Владимир

P.S. Технология COM умирает и хоронит ее сама Microsoft, точнее не хоронит а скрывает COM+ под оболочкой платформы .NET. Создание и вызов методов компонентов становиться прозрачным независимо от того, какой из языков программирования используется, а вот про Visual Basic можно забыть - VB.NET уже совсем другой язык. Поддерживать VB Microsoft не собирается, а никому кроме Microsoft этот язык не приглянулся, в отличие от C++, который широко известен как под Windows, так и под другими OS: Unix, Linux...
0
7 / 7 / 12
Регистрация: 13.02.2007
Сообщений: 1,255
11.04.2009, 19:06
P.P.S. предложение 'не указывает на слабость языка программирования C++' следует читать как 'не указывает на сложность языка программирования C++'.
0
0 / 0 / 0
Регистрация: 11.10.2007
Сообщений: 103
12.04.2009, 01:06
2Rider

и еще если вы не имеете представления о разнице между вб и с(++) то о написании игрушек вообще стоит забыть...

Я, конечно, извиняюсь за вторжение. Не гуру я в С++, так, для общей эрудиции заглянул в этот топик, но просто не могу на этом месте промолчать. А Вы что же, уважаемый Rider, эту разницу с пелёнок знали? Или Вам дополнительные блоки памяти в роддоме вставили? Вам Ваши учителя тоже так говорили?
Человек на форум за советом пришёл, а Вы ему: 'МОЛЧАТЬ!!! НЕ ТВОВО УМА ДЕЛА!!!' Он бедный, и пропал...
Не стыдно?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.04.2009, 01:06
Помогаю со студенческими работами здесь

Перевод кода с Visual Basic в C++
Помогите перевести код с Visual Basic в C++ :wall: For i = 2 To n Line (P(i - 1).x * 10 + Line1.X1, -(P(i - 1).y) * 10 +...

Перевод с visual basic на с++ builder
Есть пара строк в коде, которые я не знаю как реализовать на с++, подскажите пожалуйста как. Вот строки: 1. s=GetPixel(Pic1.hdc,x,y)Mod...

Какую среду программирования лучше выбрать для обучения языку C++ ? Visual Studio,Visual Basic или Visual C++?
И напишите,чем рекомендуемая вами среда программирования лучше других? Насколько я понял из Википедии они все поддерживают язык...

Visual Basic 6 и Visual Basic .NET - в чем различия?
Visual Basic и Visual studio это не одно и тоже? если нет то в чём разница, по мимо оформления?

Visual Basic .Net и Visual Basic 6.0 - В чём разница
В общем возник вопрос: Visual Bisic.Net и Visual Basic - это два разных языка, или же .NET версия это лишь его улучшение. Я так понимаю что...


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru