Хотелось бы написать интерфейс на С#, а вот вычисления программы на С++.
Читал про разные методы того, как это сделать типа, но в итоге только больше запутался.
Как я понял есть такие способы:
1. Создать отдельный проект Win32 DLL. для С++ и еще проект для С#, и используя функции
Dllimport/Dllexport передавать значения.
2. Писать на С++/CLI. Только тут я не понимаю, как их совместить.
Ну написал я код на С++/CLI, а как мне его в проект , написанный на С# вставить ?
3. Еще можно использовать COM, но я не понимаю, что пожарищи этим подразумевается.
Это имеется ввиду использовать создать проект С++ MFC и там уже без С# справиться?
Вот такая вот у меня неразбериха.
Какой на ваше мнение самый удобный и корректный способ совмещения двух языков?
И как это осуществляется ( опишите, пожалуйста , это подробно )
Проблему вы пока не описали (совместить языки ради совмещения или потому, что вы не знаете, как GUI на C++ написать?) и ответить однозначно нельзя.
GUI я понимаю, как написать, это конечно жу будет легче вообще сделать через IDE с фрэймворками для С++, но я хочу разобраться в способах совмещения языков.
Особенно мне не понятно, как осуществлять такой способ:
Писать на С++/CLI. Только тут я не понимаю, как их совместить.
Ну написал я код на С++/CLI, а как мне его в проект , написанный на С# вставить ?
Этот вариант на деле оказался самым удачным, потому что деление проекта на три части (C++; CLI; C#) так же строго делит и области ответственности. На стороне C# остается только интерфейс, на стороне CLI - только связь с низким уровнем, на стороне C++ - только низкий уровень.
Целостность кода сохраняется, библиотеку низкого уровня можно с равной легкостью подключить как к библиотеке CLI, так и к другому низкоуровневому проекту.
Если вы в будущем хотите библиотеку использовать в других проектах, не привязаных с .NET, то вариант 1.
MFC это для GUI, отношения к COM мало имеет.
COM используется до большой модульности приложения. Для этого COM библиотека регистрируется в реестре windows, это вам нужно?
Также в .NET есть проблема работы с COM при наследовании интерфейсов.
Если вы в будущем хотите библиотеку использовать в других проектах, не привязаных с .NET, то вариант 1.
Я вас понял.
COM используется до большой модульности приложения. Для этого COM библиотека регистрируется в реестре windows, это вам нужно?
Тогда для чего используется COM? И как он используется? Не могли бы вы дать наводящие термины, чтобы я смог разобраться с принципом использования и работы COM?
Хочу для себя разобраться в принципе работы каждого метода для большего понимания.