У меня есть одна C++ dll, которая хочет называть это с двух машин. Одна машина отправляет некоторые данные в эту DLL, и я хочу прочитать эти данные из dll. При чтении данных со второго аппарата он возвращает только ноль. Для решения этой проблемы я должен использовать общую память? или нужно какое-либо изменение в моей dll C++? С уважением.Вызов C++ dll с двух машин
ответ
DLL недействительны. Вам понадобится программа, которая загружает эту DLL и использует ее. Для общения между компьютерами обычной практикой является использование сокетов. Поскольку вы отметили C#, я предполагаю, что вы находитесь в окнах.
Таким образом, вы можете использовать Winsock (C++ Win32) или System.net.sockets для отправки данных через компьютеры.
Общая память, такая как memory files, не будет работать с перекрестным компьютером.
Оба процесса находятся на одном компьютере. одна сторона - C++, а другая сторона - C++/C#. Например, первый процесс отправляет 1 в dll и когда я хочу, чтобы число чтения со второй обработкой dll возвращало нуль, а не 1. – user1955534
Вы не указали, каков ваш метод отправки. Сокеты все еще действительны для одного компьютера. Вам нужно будет предоставить гораздо больше информации, если вы хотите получить более глубокий ответ. Добавьте информацию в свой вопрос. В вашем вопросе также четко указано «одна машина», «вторая машина», что означает наличие двух машин. – Serdalis
Да, у меня две машины. Первая машина - это программное обеспечение MetaTrader, которое вызывает мою dll и отправляет данные в dll. Вторая машина - это скрипт C# или C++, который вызывает dll для чтения данных, отправленных первой машиной. – user1955534
* Один компьютер отправляет данные в эту DLL * Как вы можете отправить данные в * dll *? Объяснить PLS –
Вы пытаетесь использовать DLL для отправки сообщения между машинами? – sevensevens
Первый процесс отправляет данные в dll, и я хочу прочитать эти данные из второго процесса. Но второй процесс возвращает только нуль. – user1955534