#c# #c #sockets #dll #communication
Вопрос:
Каков правильный и эффективный способ передачи данных из неуправляемой библиотеки DLL на C в программу Winforms на C#? Когда инициатором должна быть библиотека DLL, а получателем информации должна быть программа. Программа может запустить процесс в первый раз, но затем данные должны непрерывно поступать из библиотеки DLL в программу. Я попробовал с сокетом, но у меня ничего не вышло.
Описание проекта по изображению
Я постараюсь рассказать более подробно о своем проекте. Существует датчик (1), который каждые 100 мс отправляет данные в службу (2). Служба вызывает метод в библиотеке DLL C (3) для выполнения некоторых вычислений. Результатом вычисления является массив байтов, который представляет собой столбец пикселей, которые необходимо непрерывно отправлять в графический интерфейс C# (4) для построения растрового изображения. Я знаю, что могу использовать сокет, но я ищу что-то более элегантное, может быть, обратный вызов или что-то еще, что я могу реализовать.
Комментарии:
1. На этот вопрос невозможно ответить, поскольку у нас нет возможности узнать, как инициализируется DLL или как она выдает выходные данные для использования.
2. @MarkBenningfield , пожалуйста, посмотрите мой дополнительный ответ.
Ответ №1:
проверьте эту ссылку
Использование Неуправляемых функций DLL
вы найдете свой ответ в зависимости от вашего случая по ссылке выше,. реализация не будет сложной, единственный поворот заключается в том, что вам нужно скопировать как x64, так и x86 версии dll в папку сборки или на компьютер
Комментарии:
1. можете ли вы заглянуть в мой дополнительный вопрос?