Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
|
|||
|---|---|---|---|
|
#18+
Есть достаточно крупная библиотека (порядка 300- 500 различных классов), написанная на С#. Я хочу использовать небольшой кусок ее функциональности в своей программе на С++. Поэтому сейчас мне видится такое решение: понять библиотеку и преобразовать нужный мне код в С++. Первое что я должен сделать- изучить отличия C# от С++. Есть какие- то книжки или видосики от корпорации зла "как С++ программисту перейти на темную сторону к С#"? Должны же они были как-то первых адептов рекрутировать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2017, 22:35 |
|
||
|
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
|
|||
|---|---|---|---|
|
#18+
AlekseySQL, у вас цель несколько другая, у них все книжки о том как всё будет круто если вы будете использовать наш C# основные моменты: мусорят дофигамусорят, на первых порах пользуйся смартами везде где можешь бери проект и вырезай пока не останется минимум того что нужно веди консольное приложение для теста на C# и аналог на C++ что бы можно было отлаживать на однотипных данных увидишь какие free-lock контейнеры, сразу переводи в блокирующие варианты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2017, 22:53 |
|
||
|
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
|
|||
|---|---|---|---|
|
#18+
автора я изучал только С++ сумлеваюсь, на троечку сдал максимум. кроме пары парадигм (ГЦ и юзинг) - переписывается почти в лоб (в эту сторону) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2017, 23:25 |
|
||
|
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
|
|||
|---|---|---|---|
|
#18+
Из книжек почитай Рихтера " CLR via C# " При переписывании главная проблема будет в сборке мусора, которой нет в С++. Возможно попадутся какие-нибудь классы .NET, которым нет аналогов в С++. PS Код на C# можно вызывать из кода на С++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 08:46 |
|
||
|
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
|
|||
|---|---|---|---|
|
#18+
Siemarglсумлеваюсь, на троечку сдал максимум. Cтараюсь :) Siemarglкроме пары парадигм (ГЦ и юзинг) - переписывается почти в лоб (в эту сторону) Что значит "в лоб"? Значит мало логических отличий, поэтому одни конструкции просто заменяются на другие? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 09:35 |
|
||
|
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
|
|||
|---|---|---|---|
|
#18+
Dima TПри переписывании главная проблема будет в сборке мусора, которой нет в С++. Возможно попадутся какие-нибудь классы .NET, которым нет аналогов в С++. Никогда не понимал проблем со сборкой мусора: если объекты создавать на том уровне процедурного стека, где они реально нужны, то они автоматически умрут при выходе из функции. Если же у нас объекты создаются где-то ниже по стеку и "выпрыгивают" вверх как черт из табакерки, то это код- лапша: программу невозможно разделить на слои и каждый из них читать отдельно. Другими словами, надо просто соблюдать очевидные паттерны программирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 10:13 |
|
||
|
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
|
|||
|---|---|---|---|
|
#18+
AlekseySQL, Объекты не только на стеке размещаются но и в куче. В c# - все в куче ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 10:20 |
|
||
|
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
|
|||
|---|---|---|---|
|
#18+
ИзопропилAlekseySQL, Объекты не только на стеке размещаются но и в куче. В c# - все в куче А зачем вы их в куче размещаете? Если у вас объекты создаются на том уровне стека, где они реально начинают использоваться, то вниз по стеку они отлично ссылками передаются. Если у вас редкий случай, когда ниже по стеку вы меняете сам объект целиком (а не значения его полей) и поэтому используете указатели, то в этом редком случае можно вызвать delete в конце функции (где этот объект был создан). Но это бывает о-о-очень редко при использовании правильных паттернов программирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 10:41 |
|
||
|
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
|
|||
|---|---|---|---|
|
#18+
На просторах инета нашел забавное видео: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 10:52 |
|
||
|
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLИзопропилAlekseySQL, Объекты не только на стеке размещаются но и в куче. В c# - все в куче А зачем вы их в куче размещаете? Если у вас объекты создаются на том уровне стека, где они реально начинают использоваться, то вниз по стеку они отлично ссылками передаются. Если у вас редкий случай, когда ниже по стеку вы меняете сам объект целиком (а не значения его полей) и поэтому используете указатели, то в этом редком случае можно вызвать delete в конце функции (где этот объект был создан). Но это бывает о-о-очень редко при использовании правильных паттернов программирования.ага, редко ... - первое же более-менее серьзное ГУИ с кучей объектов или многопоточка покажет вам почём фунт лиха ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 10:53 |
|
||
|
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)ага, редко ... - первое же более-менее серьзное ГУИ с кучей объектов или многопоточка покажет вам почём фунт лиха У меня многопоточное приложение с GUI на Qt. Никакого зоопарка указателей не встречал. Разумеется я их использую (например, написал свой двумерный вектор), но вся работа с указателями идет внутри классов, а основная задача (где разворачивается процедурный стек) использует ссылки. Такой простой паттерн программирования полностью снимает вопросы работы с памятью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 11:11 |
|
||
|
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLkealon(Ruslan)ага, редко ... - первое же более-менее серьзное ГУИ с кучей объектов или многопоточка покажет вам почём фунт лиха У меня многопоточное приложение с GUI на Qt. Никакого зоопарка указателей не встречал. Разумеется я их использую (например, написал свой двумерный вектор), но вся работа с указателями идет внутри классов, а основная задача (где разворачивается процедурный стек) использует ссылки. Такой простой паттерн программирования полностью снимает вопросы работы с памятью. все верно, но вот в дНЕТе так не всегда работает - после конца функции недетерминировано время зачистки локальных объектов это советую почитать - про всякие диспозы, юзинги ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 11:42 |
|
||
|
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
|
|||
|---|---|---|---|
|
#18+
AlekseySQL, ты вроде готовый код портировать собрался. Если так, то какой смысл обсуждать где объекты создавать? Как там написано, с тем и придется разбираться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 11:42 |
|
||
|
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
|
|||
|---|---|---|---|
|
#18+
Dima TAlekseySQL, ты вроде готовый код портировать собрался. Если так, то какой смысл обсуждать где объекты создавать? Как там написано, с тем и придется разбираться. Голова у меня не только чтобы в нее кушать. Кстати, нашел интересную статью из Хохляндии с разными рейтингами языков программирования: https://dou.ua/lenta/articles/language-rating-jan-2017/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 14:29 |
|
||
|
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLКстати, нашел интересную статью из Хохляндии с разными рейтингами языков программирования какое отношение рейтинги имеют к вашей задаче? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 15:06 |
|
||
|
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
|
|||
|---|---|---|---|
|
#18+
ИзопропилAlekseySQLКстати, нашел интересную статью из Хохляндии с разными рейтингами языков программирования какое отношение рейтинги имеют к вашей задаче? Расширяют кругозор, конечно же! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 15:15 |
|
||
|
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
|
|||
|---|---|---|---|
|
#18+
Вам надо для начало понять суть функционала, и что он делает - изучить его механику, и понять чем дышал автор когда его писал. О всём остальном, только вы должны позаботиться, та и к тому - же. Никто не отменял такие такие технологии как DOTNET COM OBJECT ... Это даже в PHP есть, что бы использовать библиотеки NET http://php.net/manual/ru/class.dotnet.php ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 16:54 |
|
||
|
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
|
|||
|---|---|---|---|
|
#18+
Не вижу никакой проблемы разобраться с библиотекой на другом ЯП. Когда-то давно, когда знал только Delphi (и чуток С) пришлось разбираться с библиотекой на С++. Никаких проблем не возникло. Если нужно понять готовое , то не вижу причины для сомнений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 20:01 |
|
||
|
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
|
|||
|---|---|---|---|
|
#18+
Addxкогда знал только Delphi (и чуток С) пришлось разбираться с библиотекой на С++. Никаких проблем не возникло Это несколько другое. У c++ кроме синтаксиса и чуть большего (в чем-то - чуть меньшего) кол-ва фич в ООП и еще кое в чём фактически нет принципиальных отличий от дельфи. Ну и объекты можно в стеке, это наверно основное. Если про язык. А там - только классы, всё - только объекты. Непонятно (как минимум начинающим) когда удаляющиеся (и удаляющиеся ли). Тихий ужас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 20:43 |
|
||
|
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
|
|||
|---|---|---|---|
|
#18+
YuRockТихий ужас. не вижу проблем если хотя бы минимально понимать работу мусоросборщика ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 20:55 |
|
||
|
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
|
|||
|---|---|---|---|
|
#18+
Изопропилне вижу проблем если хотя бы минимально понимать работу мусоросборщика Начинать программировать на C# - да. Проблем нет. А вот переводить код на C# на язык с ручным управлением памятью - это и программисту, имеющему опыт работы и с C# и с C++, напряжно будет. Тупо очень много внимания потребуется. А если что-то из этого в глаза не видел - то еще труднее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 21:01 |
|
||
|
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
|
|||
|---|---|---|---|
|
#18+
можно прокладку на управляемом c++ написать или целиком библиотеку на управляемый с++ перенести, но беда та же - понимать что делаешь нужно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 21:06 |
|
||
|
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
|
|||
|---|---|---|---|
|
#18+
>AlekseySQL, вчера, 22:35 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1281168&msg=21064896][21064896] >...Первое что я должен сделать- изучить отличия C# от С++. Посмотри здесь (внизу ещё статья) и в дальнейшем здесь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2017, 21:51 |
|
||
|
Попался мне исходный код на С#, а я изучал только С++. Есть быстрый способ врубиться?
|
|||
|---|---|---|---|
|
#18+
AlekseySQLDima TAlekseySQL, ты вроде готовый код портировать собрался. Если так, то какой смысл обсуждать где объекты создавать? Как там написано, с тем и придется разбираться. Голова у меня не только чтобы в нее кушать. Кстати, нашел интересную статью из Хохляндии с разными рейтингами языков программирования: https://dou.ua/lenta/articles/language-rating-jan-2017/ зачем читать надписи на заборах, рейтинг лучше смотреть используя TIOBE, а отдельно взятая страна не самый хороший показатель AlekseySQL Есть достаточно крупная библиотека (порядка 300- 500 различных классов), написанная на С#. Я хочу использовать небольшой кусок ее функциональности в своей программе на С++. Поэтому сейчас мне видится такое решение: понять библиотеку и преобразовать нужный мне код в С++. Скорее всего, это не самое хорошее решение, поскольку высока вероятность того, что потери по времени будут значительно выше ожидаемого результата. Лучше поймите её и напишите заново. Кстати, почему вы не хотите дописать API к библиотеке на C# ? Вам нужен слишком малый кусок или она работает не так быстро, как вы бы хотели? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2017, 02:09 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=23&tid=2018009]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
51ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 269ms |
| total: | 427ms |

| 0 / 0 |
