2013-09-03 3 views
0

두 대의 컴퓨터에서이 호출을 원하는 하나의 C++ dll이 있습니다. 한 컴퓨터에서이 dll로 일부 데이터를 보내고이 데이터를 dll에서 읽으려고합니다. 두 번째 시스템에서 데이터를 읽을 때 0 만 반환합니다. 이 문제를 해결하려면 공유 메모리를 사용해야합니까? 또는 내 C + +에서 DLL을 변경해야합니까? 감사합니다.두 대의 컴퓨터에서 C++ dll을 호출하십시오.

+2

* 하나의 컴퓨터가이 데이터를 일부 데이터로 보냅니다. * 어떻게 데이터를 * dll *로 보낼 수 있습니까? Pls 설명 –

+0

DLL을 사용하여 컴퓨터간에 메시지를 보내려고합니까? – sevensevens

+0

첫 번째 프로세스가 dll로 데이터를 보내고 두 번째 프로세스에서이 데이터를 읽으려고합니다. 그러나 두 번째 프로세스는 0 만 반환합니다. – user1955534

답변

1

DLL은 실행 불가능합니다. 이 DLL을로드하고 사용하는 프로그램이 필요합니다. 컴퓨터를 통해 통신하려면 소켓을 사용하는 것이 일반적입니다. C#으로 표시 했으므로 창문에 있다고 가정합니다.
Winsock (C++ Win32) 또는 System.net.sockets을 사용하여 컴퓨터간에 데이터를 보낼 수 있습니다.

memory files과 같은 공유 메모리는 컴퓨터간에 작동하지 않습니다.

+0

두 프로세스가 동일한 컴퓨터에 있습니다. 한 쪽은 C++이고 다른 한 쪽은 C++/C#입니다. 예를 들어 첫 번째 프로세스는 1을 dll로 보내고 두 번째 프로세스에서 숫자를 읽으려면 dll이 0을 대신 반환합니다. – user1955534

+2

보내는 방법이 무엇인지 명시하지 않았습니다. 소켓은 여전히 ​​단일 컴퓨터에 유효합니다. 좀 더 깊이있는 대답을 원하면 더 많은 정보를 제공해야합니다. 귀하의 질문에 정보를 추가하십시오. 귀하의 질문에 명확하게 '한 기계', 두 번째 기계 즉 두 대의 기계가 있음을 의미합니다. – Serdalis

+0

예, 두 대의 기계가 있습니다. 첫 번째 컴퓨터는 MetaTrader 소프트웨어이며,이 DLL은 내 dll을 호출하고 dll에 데이터를 보냅니다. Second Machine은 C# 또는 C++의 스크립트로, 첫 번째 컴퓨터에서 보낸 데이터 읽기 용으로 dll을 호출합니다. – user1955534

관련 문제