Size: a a a

2020 July 30

VK

Valentin Kornienko in Embedded Group
Vasiliy
вопрос: хочется портировать C библиотеку протокола под винду и сделать обертку на C#. библиотека принимает указатели на переменные для работы с ними, в виде массива дескриптора (в С) аля var={&param, sizeof(param), typeof(param), итд}
Как бы лучше это под C# обернуть? 🤔
POD структуру передавайте
источник

СС

Сиие Сууие in Embedded Group
Vasiliy
ничего умнее статического массива в библиотеке я не придумал, который будет заполнятся вызовами соответствующих функций
А класс сделать нельзя? Ну если портируете так портируете полностью уже
источник

V

Vasiliy in Embedded Group
да библиотека обновлятся будет. не хочу порт тоже переписывать =)
источник

V

Vasiliy in Embedded Group
хотел через обертку
источник

V

Vasiliy in Embedded Group
Valentin Kornienko
POD структуру передавайте
там какието сложности с этим.. надо из C кода обновлять/читать переменные C# и любым другим способом кроме как ref на переменную делает из нее копию в памяти для C кода как я понял
источник

V

Vasiliy in Embedded Group
маршалинг
источник

V

Vasiliy in Embedded Group
если рассматривать обычный безопасный C# то ничем другим указатель переменной не передать кроме ref выходит
источник

VK

Valentin Kornienko in Embedded Group
Кпк раз структуру с сишными типами вы можете спокойно передавать между языками.
источник

A

Andrey S in Embedded Group
Vasiliy
вопрос: хочется портировать C библиотеку протокола под винду и сделать обертку на C#. библиотека принимает указатели на переменные для работы с ними, в виде массива дескриптора (в С) аля var={&param, sizeof(param), typeof(param), итд}
Как бы лучше это под C# обернуть? 🤔
unsafe?
источник

V

Vasiliy in Embedded Group
это план Х если норм варианта не будет
источник

A

Andrey S in Embedded Group
я если честно не очень понимаю задачу
источник

V

Vasiliy in Embedded Group
задача пробросить протокол с мк на вайфай/bt и под компом обработать
источник

V

Vasiliy in Embedded Group
нативно он под CAN
источник

A

Andrey S in Embedded Group
ну то есть приходит какой-то условно говоря массив байт
источник

A

Andrey S in Embedded Group
байтов кстати правильнее будет)
источник

V

Vasiliy in Embedded Group
приходит массив в C# приложение, пихается через обертку в C код, С код пережовывает и если есть обработчики то выдает обратно вызов в c# или делает какието действия с внешними переменными
источник

N

Nyah in Embedded Group
Timur Khasanshin
а еще родители воспитывают "традиционно" ремнем и эмоциональным террором, за гаражами учат бутылку нюхать с керосином
Что за технология? у нас из пакета нюхали
источник

СС

Сиие Сууие in Embedded Group
Vasiliy
приходит массив в C# приложение, пихается через обертку в C код, С код пережовывает и если есть обработчики то выдает обратно вызов в c# или делает какието действия с внешними переменными
А в чем проблема то принять массив и распихать потом в класс?
источник

V

Vasiliy in Embedded Group
в С нету классов
источник

VK

Valentin Kornienko in Embedded Group
Vasiliy
приходит массив в C# приложение, пихается через обертку в C код, С код пережовывает и если есть обработчики то выдает обратно вызов в c# или делает какието действия с внешними переменными
А. Тю.
источник