プログラムのプラグインを書きたい。プログラムは、C/C++ *.dll ライブラリのみを使用できます。ただし、プラグインを C# で記述したいので、COM を介して C++ dll から C# 関数を呼び出すだけでよいと考えました。これは問題なく動作しますが、元のプログラムが提供する構造体にアクセスする必要があります。C++ では、この構造体は次のようになります。
struct asdf{
char mc[64];
double md[10];
unsigned char muc[5];
unsigned char muc0 : 1;
unsigned char muc1 : 1;
unsigned char muc2 : 6;
unsigned char muc3;
another_struct st;
};
その構造体をパラメーターとして C# に渡すことができるようにするために、C# でまったく同じ構造体を作成しようとしました。次のことを試しましたが、アクセス違反が発生します。
struct asdf{
char[] mc;
double[] md;
byte[] muc;
byte muc0;
byte muc1;
byte muc2;
byte muc3;
another_struct st;
};
何を変更する必要がありますか?