2013-09-03 3 views
0

У меня есть одна C++ dll, которая хочет называть это с двух машин. Одна машина отправляет некоторые данные в эту DLL, и я хочу прочитать эти данные из dll. При чтении данных со второго аппарата он возвращает только ноль. Для решения этой проблемы я должен использовать общую память? или нужно какое-либо изменение в моей dll C++? С уважением.Вызов C++ dll с двух машин

+2

* Один компьютер отправляет данные в эту DLL * Как вы можете отправить данные в * dll *? Объяснить PLS –

+0

Вы пытаетесь использовать DLL для отправки сообщения между машинами? – sevensevens

+0

Первый процесс отправляет данные в dll, и я хочу прочитать эти данные из второго процесса. Но второй процесс возвращает только нуль. – user1955534

ответ

1

DLL недействительны. Вам понадобится программа, которая загружает эту DLL и использует ее. Для общения между компьютерами обычной практикой является использование сокетов. Поскольку вы отметили C#, я предполагаю, что вы находитесь в окнах.
Таким образом, вы можете использовать Winsock (C++ Win32) или System.net.sockets для отправки данных через компьютеры.

Общая память, такая как memory files, не будет работать с перекрестным компьютером.

+0

Оба процесса находятся на одном компьютере. одна сторона - C++, а другая сторона - C++/C#. Например, первый процесс отправляет 1 в dll и когда я хочу, чтобы число чтения со второй обработкой dll возвращало нуль, а не 1. – user1955534

+2

Вы не указали, каков ваш метод отправки. Сокеты все еще действительны для одного компьютера. Вам нужно будет предоставить гораздо больше информации, если вы хотите получить более глубокий ответ. Добавьте информацию в свой вопрос. В вашем вопросе также четко указано «одна машина», «вторая машина», что означает наличие двух машин. – Serdalis

+0

Да, у меня две машины. Первая машина - это программное обеспечение MetaTrader, которое вызывает мою dll и отправляет данные в dll. Вторая машина - это скрипт C# или C++, который вызывает dll для чтения данных, отправленных первой машиной. – user1955534