Этот вопрос закрыт для ответов, так как повторяет вопрос Можно ли совместить в одном проекте программы написанные на разных языках (C++, C#) в VS2012?

Как совместить 2 языка С++ и C#?

Здравстуйте!

Хотелось бы написать интерфейс на С#, а вот вычисления программы на С++.
Читал про разные методы того, как это сделать типа, но в итоге только больше запутался.
Как я понял есть такие способы:
1. Создать отдельный проект Win32 DLL. для С++ и еще проект для С#, и используя функции
Dllimport/Dllexport передавать значения.

2. Писать на С++/CLI. Только тут я не понимаю, как их совместить.
Ну написал я код на С++/CLI, а как мне его в проект , написанный на С# вставить ?

3. Еще можно использовать COM, но я не понимаю, что пожарищи этим подразумевается.
Это имеется ввиду использовать создать проект С++ MFC и там уже без С# справиться?

Вот такая вот у меня неразбериха.
Какой на ваше мнение самый удобный и корректный способ совмещения двух языков?
И как это осуществляется ( опишите, пожалуйста , это подробно )
  • Вопрос задан
  • 7240 просмотров
Решения вопроса 1
@MarkusD Куратор тега C++
все время мелю чепуху :)
2. Писать на С++/CLI. Только тут я не понимаю, как их совместить.
Ну написал я код на С++/CLI, а как мне его в проект , написанный на С# вставить ?


Этот вариант неплохо разжеван в этих двух вопросах.
Можно ли совместить в одном проекте программы написанные на разных языках (C++, C#) в VS2012?
Как динамически подключать библиотеки?

Этот вариант на деле оказался самым удачным, потому что деление проекта на три части (C++; CLI; C#) так же строго делит и области ответственности. На стороне C# остается только интерфейс, на стороне CLI - только связь с низким уровнем, на стороне C++ - только низкий уровень.
Целостность кода сохраняется, библиотеку низкого уровня можно с равной легкостью подключить как к библиотеке CLI, так и к другому низкоуровневому проекту.
Ответ написан
Ответы на вопрос 1
petermzg
@petermzg
Самый лучший программист
Если вы в будущем хотите библиотеку использовать в других проектах, не привязаных с .NET, то вариант 1.

MFC это для GUI, отношения к COM мало имеет.
COM используется до большой модульности приложения. Для этого COM библиотека регистрируется в реестре windows, это вам нужно?
Также в .NET есть проблема работы с COM при наследовании интерфейсов.
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы