Задать вопрос
@pixik

Как в проекте из c++ и C# кода сделать callback`и меджу языками?

Доброго времени!
Суть проблемы состоит в том, что имеется GUI приложение на C#, там немного логики и обработка прием/передачи по COM. есть код на СИ, который нужно вызывать из C#. Код на СИ использует тот же последовательный порт, что и программа на c#.
малой кровью у меня не получится перевести код с си в cli. Там довольно много кода. и возникает риск появления новых ошибок.
Подскажите пожалуйста, как обычно решают такие проблемы?
Всем спасибо!
  • Вопрос задан
  • 668 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 5
@DISaccount
Пишите dll на C. С экспортом функций проблем не возникнет. В шарпе - простые классы обертки с [DllImportAttribute(...)]
Ответ написан
gbg
@gbg Куратор тега C++
Любые ответы на любые вопросы
Надежнее всего переписать все на одном языке, чтобы не устраивать чехарду из колбэков - вот ее будет отладить гораздо труднее.
Ответ написан
@bmforce
Попробуйте глянуть сюда: https://github.com/mono/CppSharp
Ответ написан
Комментировать
AxisPod
@AxisPod
Ну Marshaling, если не хватит, то обертка на C++/Cli (библиотеку не нужно переписывать, а нужна только обёртка).
Ответ написан
Комментировать
@pixik Автор вопроса
В общим, решение было принято следующее.
Я сделал exe`шник, который на вход принимает различные параметры, в зависимости от которых выполняется та или иная функциональность. из C# программы вызывается этот файл, на вход передаются нужные параметры и все работает:)
Получилось довольно удобно и быстро. Думаю это один из самых дешевых способов, когда не знаешь круто всякие маршалинги итп.
Всем спасибо!
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы