Я видел несколько ответов почти на один и тот же вопрос, но не было кода на C #, который бы помог мне понять.
У меня есть файл C ++ .DLL, введенный в память. Хотя эта DLL просто получает информацию из приложения, а также получает информацию из C # .exe.
Информация C # exe будет меняться каждую секунду, в то время как информация C ++ будет меняться только один или два раза.
Как я могу создать общую переменную между двумя запущенными приложениями, и как я могу читать / писать в нее?
Спасибо!
Если вы хотите создать надежное решение, вы должны использовать следующее:
Возможны другие типы взаимодействия, но я бы не рекомендовал их использовать. Эти дополнительные типы не являются простыми и не очень четко определены, содержат предостережения и т. Д. 3 вышеупомянутых метода позволяют создавать сложные приложения.
Для вызова функции C ++ добавьте в свою сборку:
[DllImport("User32.dll")]
static extern Boolean MessageBeep(UInt32 beepType);
Это говорит о том, что User32 имеет и точку входа MessageBeep
что ты хочешь позвонить. После этого вы можете использовать его как любую другую функцию:
MessageBeep(0);
Аналогичным образом вы можете позвонить GetProcAddress
или любая другая точка входа в вашу собственную DLL.
Я буду использовать именованный канал, чтобы два процесса могли легко общаться друг с другом! (Сервер C # и клиент C ++)
Спасибо всем за помощь!