Как добавить CLI в проект C# WPF? - PullRequest
0 голосов
/ 10 марта 2020

У меня есть c# проект WPF, и теперь мне нужно добавить поддержку c ++. Я знаю, что это возможно при реализации CLI как мост.

Я нашел этот урок https://docs.microsoft.com/en-us/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp?view=vs-2019

Но нет слов о том, как интегрировать CLI в мой C# проект.

Я думал что мне нужно создать .h + .cpp файлы, такие как CLI, но когда я нажимаю Add -> New Item, нет выбора C ++

Как начать с него?

Ответы [ 2 ]

2 голосов
/ 10 марта 2020

Я использовал для создания C ++ / CLI для проектов UWP и почти уверен, что WPF работает почти так же.

Прежде всего, запустите Visual Studio Installer, go для «Разработка C ++ для рабочего стола» и убедитесь, что у вас есть все, что связано с C ++ / CLI в «установленном» состоянии (поскольку C ++ / CLI обычно не входит в набор по умолчанию).

Затем добавьте новый проект (поскольку шлюз C ++ / CLI не может быть частью тот же проект WPF или UWP), вы можете найти соответствующий класс lib в дереве шаблонов в разделе «C ++ -> CLR»

Затем вы должны ссылаться на свой персонал C ++ (DLL, что угодно) в созданном проекте C ++ / CLI и ссылки на проект C ++ / CLI в основном проекте WPF.

Вы можете попробовать это в качестве отправной точки, если вы застряли: https://www.red-gate.com/simple-talk/dotnet/net-development/creating-ccli-wrapper

1 голос
/ 10 марта 2020

У меня есть хороший пример использования собственных компонентов C ++ в управляемых приложениях: NativeWPF .

Предпочтительный способ сделать это - добавить новую сборку с поддержкой CLI к решение. В этом проекте вы должны написать все свои небезопасные классы C ++, а также код C ++ / CLI, который является связующим звеном между управляемым кодом C# и неуправляемым C ++. После этого вам нужно добавить ссылку на этот проект в ваше приложение WPF.

C ++ / CLI имеет немного другой синтаксис, я рекомендую обратиться к официальной документации Microsoft .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...