3

C dllからC#構造体定義をインポートすることは可能ですか?

私が見たすべての例では、C#で構造体を再定義することでした。構造体が変更された場合はどうなりますか?プロジェクトの2つの場所で変更する必要があります...

struct MyCStruct
{
    unsigned long A;
    unsigned long B;
    unsigned long C;
};

およびC#の場合:

    [StructLayout(LayoutKind.Sequential)]
    internal struct MyCStructAgain
    {
        public uint A;
        public uint B;
        public uint C;
    }

定義を再利用できない場合、それはなぜですか?

ありがとう

4

1 に答える 1

2

構造体をC++/ CLIとしてコンパイルすると、コンパイラーがマネージドカウンターパートを生成し、それらを参照できます。値を.NET構造体にするために、値の前にifdefが必要になります。

#ifdef CLIEXPORT
#define value
#endif

CLIEXPORT struct MyCStruct
{
    unsigned long A;
    unsigned long B;
    unsigned long C;
};
于 2012-07-30T09:51:40.177 に答える