首页 文章

使用x86程序集编译为x64时的内存使用情况

提问于
浏览
0

如果我的应用程序是64位应用程序(在64位Windows服务器上)但是混合了x86和x64程序集,.net框架的行为如何?它是作为完整的64位应用程序运行的吗?据我所知,x64和x86在内存寻址和cpu指令集方面有所不同 .

现在的问题是,如果混合使用x64和x86程序集,内存寻址是如何工作的,并且我能够在基于x64的应用程序中使用超过2GB的ram而不仅仅使用x64编译的程序集?

如果问题不清楚或需要进一步的信息,请发表评论 .

谢谢!

1 回答

  • 1

    Windows进程可以是32位或64位,它可以是64位系统上的64位和32位系统上的32位(为简单起见,我省略了32位,但您可以安全地将该标记视为x86的别名,另见What is the purpose of the “Prefer 32-bit”) .

    现在的问题是,如果混合使用x64和x86程序集,内存寻址是如何工作的,并且我能够在基于x64的应用程序中使用超过2GB的ram而不仅仅使用x64编译的程序集?

    64位进程无法加载32位程序集,所以你的问题根本就没有 BadImageFormatException ,这就是全部 .

    此外,当您尝试构建解决方案(将AnyCPU与x86和x64混合)时,您还会收到特定的警告MSB3270 .

相关问题