powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
25 сообщений из 32, страница 1 из 2
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
    #39576419
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть достаточно крупная библиотека (порядка 300- 500 различных классов), написанная на С#. Я хочу использовать небольшой кусок ее функциональности в своей программе на С++. Поэтому сейчас мне видится такое решение: понять библиотеку и преобразовать нужный мне код в С++.

Первое что я должен сделать- изучить отличия C# от С++. Есть какие- то книжки или видосики от корпорации зла "как С++ программисту перейти на темную сторону к С#"? Должны же они были как-то первых адептов рекрутировать...
...
Рейтинг: 0 / 0
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
    #39576430
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQL,

у вас цель несколько другая, у них все книжки о том как всё будет круто если вы будете использовать наш C#

основные моменты:
мусорят

дофигамусорят, на первых порах пользуйся смартами везде где можешь

бери проект и вырезай пока не останется минимум того что нужно

веди консольное приложение для теста на C# и аналог на C++ что бы можно было отлаживать на однотипных данных

увидишь какие free-lock контейнеры, сразу переводи в блокирующие варианты
...
Рейтинг: 0 / 0
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
    #39576446
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автора я изучал только С++
сумлеваюсь, на троечку сдал максимум.

кроме пары парадигм (ГЦ и юзинг) - переписывается почти в лоб (в эту сторону)
...
Рейтинг: 0 / 0
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
    #39576518
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из книжек почитай Рихтера " CLR via C# "

При переписывании главная проблема будет в сборке мусора, которой нет в С++. Возможно попадутся какие-нибудь классы .NET, которым нет аналогов в С++.

PS Код на C# можно вызывать из кода на С++.
...
Рейтинг: 0 / 0
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
    #39576545
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Siemarglсумлеваюсь, на троечку сдал максимум.

Cтараюсь :)

Siemarglкроме пары парадигм (ГЦ и юзинг) - переписывается почти в лоб (в эту сторону)

Что значит "в лоб"? Значит мало логических отличий, поэтому одни конструкции просто заменяются на другие?
...
Рейтинг: 0 / 0
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
    #39576576
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TПри переписывании главная проблема будет в сборке мусора, которой нет в С++. Возможно попадутся какие-нибудь классы .NET, которым нет аналогов в С++.

Никогда не понимал проблем со сборкой мусора: если объекты создавать на том уровне процедурного стека, где они реально нужны, то они автоматически умрут при выходе из функции. Если же у нас объекты создаются где-то ниже по стеку и "выпрыгивают" вверх как черт из табакерки, то это код- лапша: программу невозможно разделить на слои и каждый из них читать отдельно. Другими словами, надо просто соблюдать очевидные паттерны программирования.
...
Рейтинг: 0 / 0
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
    #39576582
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQL,

Объекты не только на стеке размещаются но и в куче.
В c# - все в куче
...
Рейтинг: 0 / 0
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
    #39576605
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ИзопропилAlekseySQL,

Объекты не только на стеке размещаются но и в куче.
В c# - все в куче

А зачем вы их в куче размещаете? Если у вас объекты создаются на том уровне стека, где они реально начинают использоваться, то вниз по стеку они отлично ссылками передаются. Если у вас редкий случай, когда ниже по стеку вы меняете сам объект целиком (а не значения его полей) и поэтому используете указатели, то в этом редком случае можно вызвать delete в конце функции (где этот объект был создан). Но это бывает о-о-очень редко при использовании правильных паттернов программирования.
...
Рейтинг: 0 / 0
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
    #39576616
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На просторах инета нашел забавное видео:
YouTube Video
...
Рейтинг: 0 / 0
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
    #39576619
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLИзопропилAlekseySQL,

Объекты не только на стеке размещаются но и в куче.
В c# - все в куче

А зачем вы их в куче размещаете? Если у вас объекты создаются на том уровне стека, где они реально начинают использоваться, то вниз по стеку они отлично ссылками передаются. Если у вас редкий случай, когда ниже по стеку вы меняете сам объект целиком (а не значения его полей) и поэтому используете указатели, то в этом редком случае можно вызвать delete в конце функции (где этот объект был создан). Но это бывает о-о-очень редко при использовании правильных паттернов программирования.ага, редко ... - первое же более-менее серьзное ГУИ с кучей объектов или многопоточка покажет вам почём фунт лиха
...
Рейтинг: 0 / 0
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
    #39576635
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kealon(Ruslan)ага, редко ... - первое же более-менее серьзное ГУИ с кучей объектов или многопоточка покажет вам почём фунт лиха

У меня многопоточное приложение с GUI на Qt. Никакого зоопарка указателей не встречал.

Разумеется я их использую (например, написал свой двумерный вектор), но вся работа с указателями идет внутри классов, а основная задача (где разворачивается процедурный стек) использует ссылки. Такой простой паттерн программирования полностью снимает вопросы работы с памятью.
...
Рейтинг: 0 / 0
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
    #39576673
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLkealon(Ruslan)ага, редко ... - первое же более-менее серьзное ГУИ с кучей объектов или многопоточка покажет вам почём фунт лиха

У меня многопоточное приложение с GUI на Qt. Никакого зоопарка указателей не встречал.

Разумеется я их использую (например, написал свой двумерный вектор), но вся работа с указателями идет внутри классов, а основная задача (где разворачивается процедурный стек) использует ссылки. Такой простой паттерн программирования полностью снимает вопросы работы с памятью.
все верно, но вот в дНЕТе так не всегда работает - после конца функции недетерминировано время зачистки локальных объектов

это советую почитать - про всякие диспозы, юзинги
...
Рейтинг: 0 / 0
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
    #39576674
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQL, ты вроде готовый код портировать собрался. Если так, то какой смысл обсуждать где объекты создавать? Как там написано, с тем и придется разбираться.
...
Рейтинг: 0 / 0
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
    #39576853
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TAlekseySQL, ты вроде готовый код портировать собрался. Если так, то какой смысл обсуждать где объекты создавать? Как там написано, с тем и придется разбираться.

Голова у меня не только чтобы в нее кушать.

Кстати, нашел интересную статью из Хохляндии с разными рейтингами языков программирования: https://dou.ua/lenta/articles/language-rating-jan-2017/
...
Рейтинг: 0 / 0
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
    #39576890
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLКстати, нашел интересную статью из Хохляндии с разными рейтингами языков программирования
какое отношение рейтинги имеют к вашей задаче?
...
Рейтинг: 0 / 0
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
    #39576900
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ИзопропилAlekseySQLКстати, нашел интересную статью из Хохляндии с разными рейтингами языков программирования
какое отношение рейтинги имеют к вашей задаче?

Расширяют кругозор, конечно же!
...
Рейтинг: 0 / 0
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
    #39577008
Няшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вам надо для начало понять суть функционала, и что он делает - изучить его механику, и понять чем дышал автор когда его писал.

О всём остальном, только вы должны позаботиться, та и к тому - же.

Никто не отменял такие такие технологии как DOTNET COM OBJECT ... Это даже в PHP есть, что бы использовать библиотеки NET

http://php.net/manual/ru/class.dotnet.php
...
Рейтинг: 0 / 0
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
    #39577106
Addx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не вижу никакой проблемы разобраться с библиотекой на другом ЯП.
Когда-то давно, когда знал только Delphi (и чуток С) пришлось разбираться с библиотекой на С++. Никаких проблем не возникло.
Если нужно понять готовое , то не вижу причины для сомнений.
...
Рейтинг: 0 / 0
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
    #39577117
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Addxкогда знал только Delphi (и чуток С) пришлось разбираться с библиотекой на С++. Никаких проблем не возникло
Это несколько другое. У c++ кроме синтаксиса и чуть большего (в чем-то - чуть меньшего) кол-ва фич в ООП и еще кое в чём фактически нет принципиальных отличий от дельфи. Ну и объекты можно в стеке, это наверно основное. Если про язык.

А там - только классы, всё - только объекты. Непонятно (как минимум начинающим) когда удаляющиеся (и удаляющиеся ли). Тихий ужас.
...
Рейтинг: 0 / 0
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
    #39577122
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockТихий ужас.
не вижу проблем если хотя бы минимально понимать работу мусоросборщика
...
Рейтинг: 0 / 0
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
    #39577126
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилне вижу проблем если хотя бы минимально понимать работу мусоросборщика
Начинать программировать на C# - да. Проблем нет. А вот переводить код на C# на язык с ручным управлением памятью - это и программисту, имеющему опыт работы и с C# и с C++, напряжно будет. Тупо очень много внимания потребуется. А если что-то из этого в глаза не видел - то еще труднее.
...
Рейтинг: 0 / 0
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
    #39577129
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно прокладку на управляемом c++ написать или целиком библиотеку на управляемый с++ перенести,

но беда та же - понимать что делаешь нужно
...
Рейтинг: 0 / 0
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
    #39577148
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>AlekseySQL, вчера, 22:35 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1281168&msg=21064896][21064896]
>...Первое что я должен сделать- изучить отличия C# от С++.
Посмотри здесь (внизу ещё статья) и в дальнейшем здесь
...
Рейтинг: 0 / 0
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
    #39577183
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLDima TAlekseySQL, ты вроде готовый код портировать собрался. Если так, то какой смысл обсуждать где объекты создавать? Как там написано, с тем и придется разбираться.

Голова у меня не только чтобы в нее кушать.

Кстати, нашел интересную статью из Хохляндии с разными рейтингами языков программирования: https://dou.ua/lenta/articles/language-rating-jan-2017/
зачем читать надписи на заборах, рейтинг лучше смотреть используя TIOBE, а отдельно взятая страна не самый хороший показатель

AlekseySQL Есть достаточно крупная библиотека (порядка 300- 500 различных классов), написанная на С#. Я хочу использовать небольшой кусок ее функциональности в своей программе на С++. Поэтому сейчас мне видится такое решение: понять библиотеку и преобразовать нужный мне код в С++.

Скорее всего, это не самое хорошее решение, поскольку высока вероятность того, что потери по времени будут значительно выше ожидаемого результата. Лучше поймите её и напишите заново. Кстати, почему вы не хотите дописать API к библиотеке на C# ? Вам нужен слишком малый кусок или она работает не так быстро, как вы бы хотели?
...
Рейтинг: 0 / 0
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
    #39577261
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
просто оставлю это здесь
MSCOREE.DLL
https://msdn.microsoft.com/en-us/library/9x0wh2z3.aspx
...
Рейтинг: 0 / 0
25 сообщений из 32, страница 1 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]