Как стать автором
Обновить

Комментарии 17

На втором курсе с помощью managed c++ смешал расчет формулы в Maple и визуализацию на C#. Но сейчас, хоть убей, c++ забыл как страшный сон.
ну вот оно как раз для таких задач — смешать и забыть

и ведь все равно находятся люди, которые недоумевают, зачем нужен C++/CLI, пытаются сравнивать его с C# и прочей такой херью занимаются :)
C++ /cli нужен в первую очередь для «легкой» адаптации легаси C++ кода под нет, а уже потом для случаев когда с помощью P/Invoke задачу тяжело решать. Было бы неплохо еще сказать что вначале была попытка с managed c++ но она успешно провалилась. На мой взгляд в первую очередь из-за дикого синтаксиса.
Счастливчик :) Иногда всетаки приходиться смешивать. Особенно если хочешь написать плагин для нативной программы…
-> Но что, если у библиотеки нет C-интерфейса, или возможностей P/Invoke не хватает?

А можете привести пример, когда возможности P/Invoke не хватает?..
Ну на самом деле автор видимо имел ввиду случаи когда нужно импортировать действительно много функций. А C++ /cli нужен в первую очередь для удобного использования старого плюсового кода в нете.
НЛО прилетело и опубликовало эту надпись здесь
Когда у вас есть нативные классы.
Было бы неплохо раз уж сказали о финалайзерах — рассказать как их использовать (синтаксис). Интересно также что стандартная для C# реализация IDisposable в С++ /CLI может несколько удивить, а если глянуть в сгенеренный код, то и шокировать =)

А вообще на эту тему есть очень хорошая книжка — C++ /CLI in Action.
Спасибо! Очень актуально.

Не знаете, а если ли что-то подобное для Java? Мне нужно использовать огромное количество сишных и фортрановских библиотек — все не перепишешь. Кстати, как обстноит дело с не элементарными типами? std::complexоно нормальнео переварит?
Смотря что значит «переварит». Использовать в плюсах — можно, вытащить наружу (чтобы из нета была видна) — нет, для этого нужно класс описывать специальным образом.
Ну вот и всё, собственно. Каждый внутренний класс библиотки переписывать это всё равно что её саму переписать. А если там каждый класс и функция на шаблонах, то я так понимаю что никак её не скрестишь.
Что — все? Чудес то не бывает, для каждой задачи есть свои способы решения. Нужны несколько классов из плюсов — пишите менеджет враппер, нужны классы из нета — используйте плюсы, а из них нетовский фреймворк. Первоочередная цель создания C++ /CLI — облегчить переход с нативных плюсов к дот нету. А шаблонов в плюсовом понимании в нете дейсвительно нету, но это не мешает их использовать с менеджет классами.
В Java есть JNI
Зависит от конкретной задачи. Если вам немного Java и много C++ — для вас есть CNI, если наоборот — тогда JNI
Нет и не надо. Используйте JNI.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории