Как отправлять данные из библиотеки DLL Visual C и графического интерфейса C#

#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. можете ли вы заглянуть в мой дополнительный вопрос?