#c# #c #variables #share
#c# #c #переменные #Поделиться
Вопрос:
У меня есть своя программа, написанная на C #, и мне нужно использовать 4 переменные в другой программе, написанной на C
Программа на C имеет таймер, который считывает com-порт и преобразует биты в двойные переменные x, y и z.
До сих пор я записывал текстовый файл при каждом такте таймера, а затем считывал этот текстовый файл с помощью моей программы на C #.
Мне было интересно.. Есть ли способ для моей программы на C # получить доступ к памяти программы на C и прочитать переменные оттуда?
Комментарии:
1. Используйте P / Invoke или перенесите код C в C # (или C / CLI)
2. Интересно, я проверю, что вы предлагаете, спасибо Slaks
3. Есть много способов — помимо всего, предоставляемого операционной системой для взаимодействия между процессами (на ум приходят сокеты и разделяемая память), вы можете извлечь соответствующую часть вашей программы на C в DLL и использовать ее (либо через оболочку C / CLI, либо путем предоставления интерфейса C и использования P/Invoke).
4. Более простым решением, чем чтение необработанной памяти из программы, является межпроцессное взаимодействие , как предложил @Cameron, но это зависит от цели, поддерживающей метод IPC. Поскольку у вас, похоже, есть доступ к коду целевой программы, это не должно быть проблемой.