Код C # и C ++ в одном приложении .NET?

Я должен работать с Open CV, который можно запрограммировать на C ++, и развернуть его в приложении с графическим интерфейсом .NET. Мне бы очень хотелось поработать с C # для черт интерфейса.

Какой лучший подход для этого?

0

Решение

Я знаю два способа использования C # и C ++ в одном приложении.

Самый простой способ работает, когда компоненты, которые должны быть написаны на C ++ и C #, могут быть разделены так, что один компонент зависит от другого, но они не являются взаимозависимыми. В этом случае просто создайте две сборки, одну в C # и одну в VC ++, и ссылайтесь на одну из другой. Это самый простой способ сделать это, не в последнюю очередь потому, что он поддерживается в пользовательском интерфейсе Visual Studio.

Однако такой подход не будет работать, если существует взаимозависимость, то есть класс A должен знать о классе B, а класс B должен знать о классе A, где класс A должен быть написан на C ++, а класс B — в C #. Все еще можно писать классы на разных языках, например, используя менее известную функцию .NET, называемую многофайловыми сборками или сетевыми модулями.

Увидеть Как создать многофайловую сборку а также Многофайловые сборки для инструкций. Полезно помнить, что компилятор C ++, как правило, умнее других. Кажется, я помню, что процедура заключалась в том, чтобы заставить C # скомпилировать свою половину в NetModule, а затем передать его компилятору и компоновщику C ++, который был способен связать его с частями C ++ и создать окончательную сборку.

Альтернативный подход, если вы намереваетесь написать только небольшое количество кода на C #, состоит в том, чтобы изучить синтаксис VC ++ для функций .NET, которые вы хотите использовать, и вообще избегать C #. VC ++ может объявлять управляемые интерфейсы и типы точно так же, как это делает C #, и если вы не будете писать много реального кода на C #, то это может быть проще.

3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector