C/C++アプリケーションからUDP経由でデータを受信しています。このアプリケーションは、クラスのmemcpyをバッファに入れて、それを私たちの方法で投げています。私たちのアプリケーションはC#で書かれており、何とかデータを理解する必要があります。構造体のヘッダファイルにアクセスできます。すべては基本的に構造体または列挙型です。データの形式を変更することはできず、ヘッダーファイルはかなり頻繁に変更される可能性があります。C#で使用するUDPを介したC++クラスですが、どのようなオプションがありますか?
私は、データを受け取るためにC++で通信クラスを書き直した後、シリアル化をより詳細に制御することを考えましたが、それは長い時間がかかり、C++は錆びていますC++スレッディングに関する多くの経験が必要です。
C#でアクセスするために用意されたヘッダーファイルを使用して、いくつかのプロトタイプのC++ライブラリを作成しましたが、実際にC#自体のクラスの実際のインスタンスを実際に作成して使用する方法について、私が調べるたびに、私が見るのは外部関数の呼び出しではなく、外部関数の呼び出しです)。
私もマーシャルを調べました。しかし、データが頻繁に変更される可能性があるので、これは最後の手段であり、かなり手作業であると感じています。
この問題に関して、任意のオプションを知っている人はいませんか?
*「クラスのmemcpy」はどのように見えますか?それはメタ情報を含んでいますか、それとして使用できるものは何ですか? – Sinatr
オブジェクトをカスタム形式で返すアンマネージdllの関数を呼び出す場合は、C#でこの形式/オブジェクトを再構築し(たとえばstructとして)、オブジェクトをその中にキャストする必要があります。 – Noren
悲しいことに、メタデータはありません。 – user3103055