私は、特定のC構造体に基づいてフォーマットされたデータへのポインタを返す(そして受け入れる)良い関数を持つ "ネイティブ" DLLを持っています。構造体へのポインタを返す(そして受け入れる)ネイティブDLL関数を呼び出す
私のC#プログラムでは、構造体の内部構造については気にしません。ネイティブ関数を取得して渡すだけです。私はすでにDLL内の関数をピンボケしてしまった。 ポインターについては、ポインタード構造体の内部フィールドを気にしないので、void *を使用することを考えました。ポインタを格納して使用するだけですそれをDLLライブラリ関数に渡します。
しかし、多くの種類のデータにvoid *を使用すると、コードが判読できなくなります! C#でtypedef void * some_nicer_type_tに何か方法がありますか?そういうことをするのか?
ありがとうございますが、IntPtrはすべてのためにIntPtrを維持しています。それはきれいにすることができますが、私にとっては、ボイド*のように面倒で無意味です。私はtypedef IntPtr someothertype_tしようとしましたが、コンパイルされません。どうすれば新しいタイプを定義できますか?私はいくつかのオブジェクトの内側にIntPtrをラップするようないくつかの回避策を使用する必要がありますし、同様に関数のラッパーを使用する必要があります。うん、迷惑な。 – gd1
@Giacomo:私の答えは更新されましたが、実際には更新されたコメントと重複しています。 –
お世話になりました。ありがとうございました。このソリューションは、実行可能な最高のものです。 – gd1