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

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

12.03.2009, 23:34. Показов 25373. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru