@pixik

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

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

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

Войти через центр авторизации
Похожие вопросы