x86,x64,Any CPU区别

Posted sunzhenyong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了x86,x64,Any CPU区别相关的知识,希望对你有一定的参考价值。

https://blog.csdn.net/zuguangboy/article/details/51509670

 

 

1,即主程序(编译出来是exe文件的)是x86平台下编译的,而它所依赖的一个项目(或动态链接库)是由x64位平台编译出来的,则会提示“未能加载文件或程序集…或它的某一个依赖性。试图加载格式不正确的程序。”之类的错误。这是因为32位程序不能加载64位的dll,更不能调用其中的类、方法和对象等。反之,若主程序是由x64平台编译出来的,而dll是x86的呢?答案。。也是不行的!

2,虽说Any CPU编译出来的"程序"取决于操作系统,但是由Any CPU编译出来"dll"则取决于调用它的主程序,即若主程序是32位的,那么dll也是32位的,若主程序是64位的,那么dll就是64位的。所以dll一般采用Any CPU平台编译,而主程序一般采用x86平台编译。 

总结:了解了它们的区别之后,我们打包程序的时候就知道如何取舍了。一般来说,在不清楚客户的电脑是什么类型的操作系统的情况下,或者两者都有的时候,则主程序采用x86平台编译,dll采用Any CPU平台编译。若清楚的知道是64位操作系统,那么就可以都按x64平台编译了。 

以上是关于x86,x64,Any CPU区别的主要内容,如果未能解决你的问题,请参考以下文章

关于VS项目平台的x86,x64,Any CPU以及Debug和Release的区别

x86 x64 x86_64 AMD64 区别

X86 X64 X86_64 AMD64 区别

X86和X86_64和X64有什么区别?

百科知识 i686和x86_64有什么区别

IA64与x64的区别