Отправка информации между неуправляемой библиотекой C ++ и управляемым пользовательским интерфейсом C #

Итак, сценарий следующий.

Application1 имеет возможность загружать и выполнять вызовы неуправляемой библиотеки DLL C ++.

Я хочу написать еще один пользовательский интерфейс на C #, чтобы облегчить себе жизнь.

Затем я хочу, чтобы DLL могла отправлять информацию в исполняемый файл C #, а исполняемый файл C # мог отправлять информацию в DLL.

Информация, передаваемая туда и обратно, не является сложной. Это будет просто строка.

Есть идеи, как это можно сделать.


person CathalMF    schedule 28.11.2013    source источник
comment
что вы уже пробовали / искали на этом сайте? Я почти уверен, что это уже было рассмотрено в существующих вопросах.   -  person TooTone    schedule 28.11.2013
comment
У DLL обычно нет собственной жизни, как у процесса. Вы должны вызвать экспортированную функцию, чтобы она что-то сделала. Или заставить его что-нибудь вернуть. Просто аргументы и возвращаемые значения функции.   -  person Hans Passant    schedule 28.11.2013


Ответы (1)


Это должно ответить на ваш вопрос. По сути, самые простые варианты - это именованные каналы для связи на одном компьютере и сокеты для разных компьютеров.
Обновить
После того, как лучше размышления, ответ зависит от того, «Кто контролирует?» в вашем сценарии.
1. Если исполняемый файл C # отвечает за вызов вашей неуправляемой DLL и отправку / получение информации, вам следует использовать Вызов платформы.
2. Если вы хотите, чтобы ваша неуправляемая DLL решала, когда отправлять данные в приложение, сначала всего вам следует преобразовать вашу DLL в полноценное приложение, а затем использовать межпроцессное взаимодействие.

person Yurii    schedule 28.11.2013
comment
Вы уверены в этом ответе? Трубы и розетки предназначены для межпроцессного взаимодействия. OP осуществляет внутрипроцессное общение. - person TooTone; 29.11.2013
comment
@TooTone, полагаю, я не до конца понял вопрос, поэтому обновил ответ, спасибо за подсказку. - person Yurii; 29.11.2013