私は 64 ビットのプロセスで、intサイズは 8 バイトです。
32ビットにコンパイルされたdllを参照しています。
この dll には、パラメーターを受け取る関数がありintます。
何が起こるか?
「コンテナ」に送信し8 byteていますか?4 byte
いいえ、64 ビット/C# では、anintはまだ 4 バイトです。
C# では、int常にエイリアスにすぎませんglobal::System.Int32
変更されるのは参照サイズとポインターサイズですが、それはすべて IL によって抽象化されているため、何も変更する必要はありません。ただし、CLI は 32 ビットxor (nand?) 64 ビットのみになることに注意してください。そのうちの 1 つを「任意の CPU」にする必要がある場合があります。
常にマップされるSystem.Int32ため、必要なのは4つだけです
C# では、int は 32 ビット アセンブリと 64 ビット アセンブリで同じサイズです。intorInt32は常に 32 ビットですが、longorInt64は常に 64 ビットです。
intC# では常に 32 ビット (4 バイト) ですが、C++ などの他の言語ではそうではありません。
System.IntPtrx86 マシンでは 4 バイト、64 ビット OS では 8 バイトです。OS 依存の整数型が必要な場合は、これを使用します。