C/C++ 응용 프로그램에서 UDP를 통해 데이터를 수신하고 있습니다. 이 응용 프로그램은 클래스의 memcpy를 버퍼에 넣고 자신의 방식으로 던지고 있습니다. 우리의 응용 프로그램은 C#으로 작성되었으며 어떻게 든 데이터를 이해해야합니다. 우리는 구조체의 헤더 파일에 접근 할 수 있습니다. 모든 것은 기본적으로 구조체 또는 열거 형입니다. 데이터가 들어오는 형식을 변경할 수 없으며 헤더 파일이 자주 변경 될 수 있습니다.C#에서 사용되는 UDP를 통한 C++ 클래스는 무엇입니까?
저는 C++에서 comms 클래스를 다시 작성하여 데이터를 수신 한 다음 직렬화에 대한 제어력이 더 큽니다. 그러나 오랜 시간이 걸릴 것이며 C++은 녹슬지 않습니다. C++ 스레딩에 대한 많은 경험이 필요합니다.
C#을 통해 액세스 할 수 있도록 제공되는 헤더 파일을 사용하여 몇 가지 프로토 타입 C++ 라이브러리를 만들었지 만 C#에서 실제 클래스 인스턴스를 만들고 사용하는 방법에 대해 머리를 터지게 할 수는 없습니다. 이걸 들여다 볼 때마다 외부 함수를 사용하지 않고 extern 함수 호출 만 보입니다.
마샬링에 대해서도 살펴 보았습니다. 그러나 데이터가 자주 변경되기 쉽기 때문에 이것이 최후의 수단이라고 생각하며 매우 수동적이라고 생각합니다.
아무에게도 옵션을 알고 있거나 더 이상이 문제에 대해 독서 또는 조언을 받아 본 적이 없습니까?
* "클래스의 memcpy"는 어떻게 생겼습니까? 메타 정보가 포함되어 있습니까? – Sinatr
사용자 지정 형식으로 개체를 반환하는 관리되지 않는 dll 함수를 호출하는 경우이 형식/개체를 C# (예 : struct)로 다시 작성하고 개체를이 형식으로 캐스팅해야합니다. – Noren
슬프게도 메타 데이터가 없습니다. – user3103055