vs中目标平台x86,x64,any cpu的区别

vs中目标平台x86,x64,any cpu的区别

一、vs中目标平台选项的界面

二、Any CPU平台下

编译出来的exe(可执行文件)或dll(动态链接库)是兼容的,取决于当前的操作系统,若操作系统是32位的,则编译出来的程序会以32位的软件模式运行,而在64位操作系统下则会以64位的软件模式运行。

三、x86平台下

强制生成的软件为32位软件,不管操作系统是32位还是64位都是以32位模式运行。

四、x64平台下

与x86类似,强制生成为64位软件,只能在64位模式运行。

五、x86、x64、Any CPU选择的注意事项

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

2、若主程序是由x64平台编译出来的,而它所依赖的一个项目(或动态链接库)是由x86位平台编译出来的呢?也会报错!

3、若dll由Any CPU编译的,那么这个dll就可以被32位和64位的主程序调用

4、虽说Any CPU编译出来的程序取决于操作系统,但是由Any CPU编译出来dll则取决于调用它的主程序,即若主程序是32位的,那么dll也是32位的,若主程序是64位的,那么dll就是64位的。

标签: