Комментарии 17
На втором курсе с помощью managed c++ смешал расчет формулы в Maple и визуализацию на C#. Но сейчас, хоть убей, c++ забыл как страшный сон.
ну вот оно как раз для таких задач — смешать и забыть
и ведь все равно находятся люди, которые недоумевают, зачем нужен C++/CLI, пытаются сравнивать его с C# и прочей такой херью занимаются :)
и ведь все равно находятся люди, которые недоумевают, зачем нужен C++/CLI, пытаются сравнивать его с C# и прочей такой херью занимаются :)
C++ /cli нужен в первую очередь для «легкой» адаптации легаси C++ кода под нет, а уже потом для случаев когда с помощью P/Invoke задачу тяжело решать. Было бы неплохо еще сказать что вначале была попытка с managed c++ но она успешно провалилась. На мой взгляд в первую очередь из-за дикого синтаксиса.
Счастливчик :) Иногда всетаки приходиться смешивать. Особенно если хочешь написать плагин для нативной программы…
-> Но что, если у библиотеки нет C-интерфейса, или возможностей P/Invoke не хватает?
А можете привести пример, когда возможности P/Invoke не хватает?..
А можете привести пример, когда возможности P/Invoke не хватает?..
Было бы неплохо раз уж сказали о финалайзерах — рассказать как их использовать (синтаксис). Интересно также что стандартная для C# реализация IDisposable в С++ /CLI может несколько удивить, а если глянуть в сгенеренный код, то и шокировать =)
А вообще на эту тему есть очень хорошая книжка — C++ /CLI in Action.
А вообще на эту тему есть очень хорошая книжка — C++ /CLI in Action.
Спасибо! Очень актуально.
Не знаете, а если ли что-то подобное для Java? Мне нужно использовать огромное количество сишных и фортрановских библиотек — все не перепишешь. Кстати, как обстноит дело с не элементарными типами? std::complexоно нормальнео переварит?
Не знаете, а если ли что-то подобное для Java? Мне нужно использовать огромное количество сишных и фортрановских библиотек — все не перепишешь. Кстати, как обстноит дело с не элементарными типами? std::complexоно нормальнео переварит?
Смотря что значит «переварит». Использовать в плюсах — можно, вытащить наружу (чтобы из нета была видна) — нет, для этого нужно класс описывать специальным образом.
Ну вот и всё, собственно. Каждый внутренний класс библиотки переписывать это всё равно что её саму переписать. А если там каждый класс и функция на шаблонах, то я так понимаю что никак её не скрестишь.
Что — все? Чудес то не бывает, для каждой задачи есть свои способы решения. Нужны несколько классов из плюсов — пишите менеджет враппер, нужны классы из нета — используйте плюсы, а из них нетовский фреймворк. Первоочередная цель создания C++ /CLI — облегчить переход с нативных плюсов к дот нету. А шаблонов в плюсовом понимании в нете дейсвительно нету, но это не мешает их использовать с менеджет классами.
Нет и не надо. Используйте JNI.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
C++/CLI — «клейкий» язык