C#のflatbuffers
でオブジェクトをネイティブ(アンマネージド)メモリバッファにシリアル化できますか? だから私はこれらの手順をしたい:フラットバッファを使用してC#からネイティブメモリバッファにシリアライズ
- は、デシリアライゼーション のためにC++にこのメモリバッファを送るC#でオブジェクトを作成し、割り当てられたバッファ
- にそれらをシリアライズ
- ネイティブメモリからネイティブメモリバッファを割り当て
C#のカスタムメモリバッファアロケータ、またはC#のメモリバッファの所有権をC++に転送する方法のいずれかを考えています。
一般に、私はC#からC++にデータを送信する際にメモリをコピーしないようにしたいと思います。このメモリバッファをC#とC++の間で共有します。
どうすればよいですか?
誰でもdownvotesとクローズ票を説明できますか? – Max
あなたはc#メモリをピンし、そのアドレスをC関数に渡すことができます。https://stackoverflow.com/questions/5143349/c-sharp-how-can-i-pin-an-object-in-memory-without-marshalling-オブジェクトとここhttps://manski.net/2012/06/pinvoke-tutorial-pinning-part-4/ – pm100