32/64位进程的int行为?

Roy*_*mir 4 .net c# int .net-4.0

我是一个64位的进程,我的int大小是8个字节.

我正在引用一个编译为32位的DLL.

该dll具有接受int参数的功能.

会发生什么?

我发送8 byte到一个4 byte"容器"?

Mar*_*ell 15

不,在64位/ C#中,int仍然是4个字节.

在C#中,int永远只是一个别名global::System.Int32

改变的是参考大小和指针大小,但这一切都被IL抽象出来 - 无需改变.但请注意,CLI仅为32位xor(nand?)64位.您可能需要其中一个为"任何CPU".

  • @Royi:它是,但是你将如何以一种处理不同指针大小的方式管理操作系统,特别是在混合进程中,你只能将*64位数据与**32位数据混合.如果不是不可能的话,管理变得混乱.忘记CLR,考虑OS设计,导致指针大小由OS定义而不是由CLR定义. (2认同)