Как создать интерфейс с помощью приложения .NET для C ++? - PullRequest
3 голосов
/ 14 мая 2011

Я написал весь код приложения на C ++.Это стандартный C ++, написанный с использованием Visual Studio 2010.

Я хочу создать графический интерфейс с использованием .NET.Является ли это возможным?Спасибо!

Ответы [ 3 ]

1 голос
/ 14 мая 2011

Да, именно так работает Expression Studio, которая является инструментом редактирования графического интерфейса для WPF.Вы можете использовать аналогичный подход и представить всю свою функциональность через P / Invoke для приложения с графическим интерфейсом, которое будет в .NET.

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

1 голос
/ 14 мая 2011

Есть много вариантов, вот некоторые из них:

  • Оберните код c ++ в Windows DLL, вызовите код c ++ из .NET, используя p /invoke.

  • Обернуть код c ++ в com-объект, .NET может напрямую использовать com-объекты.

  • Обернуть код c ++ в некоторый типуправляемой оболочки C ++ (c ++ / CLI), загрузите и используйте эту новую сборку в графическом интерфейсе .NET.

Еще несколько экзотических идей:

  • Используйте некоторый тип межпроцессного взаимодействия, например, сокеты.Ваш код C ++ должен был бы выполняться в другом процессе.Я полагаю, вы также можете превратить код c ++ в веб-сервис.

  • Запустить код c ++ в командной строке, запускаемой .NET GUI.Передача параметров через параметры командной строки, захват и анализ стандартного текста из программы на c ++ обратно в приложении .NET.

Редактировать: я бы порекомендовал DLL и p / invoke,COM-объект будет иметь преимущества перед простой старой DLL для передачи более сложных типов и предоставления объектной модели, но COM-объекты затрудняют создание и установку / регистрацию (даже с / ATL, файлами манифеста и т. Д.).Использование C ++ / CLI всегда кажется более сложным, чем это стоит для многих проектов, но стоит немного узнать об этом, если другие варианты станут слишком ограничивающими.

0 голосов
/ 14 мая 2011

Вы можете использовать interop для связи с неуправляемым кодом и написания графического интерфейса пользователя в управляемом коде, но в целом это не будет хорошим опытом для разработчиков.

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