vs下活动解决方案管理器中x86 x64 win32 anycpu arm的区别

news/2025/2/16 6:51:24/

一 、x86、x64、Any CPU的区别 

参考文章点击打开链接

1.简单的说,它们之间最直接的区别就是:x86平台编译出来的exe(可执行文件)或dll(动态链接库)都是32位的。以此类推,x64对应的则是64位的。而Any CPU则是取决于当前的操作系统,若操作系统是32位的,则编译出来的程序就是32位的,反之编译出来的就是64位程序。 
2.若你的启动项目,即主程序(编译出来是exe文件的)是x86平台下编译的,而它所依赖的一个项目(或动态链接库)是由x64位平台编译出来的,则会提示“未能加载文件或程序集…或它的某一个依赖性。试图加载格式不正确的程序。”之类的错误。这是因为32位程序不能加载64位的dll,更不能调用其中的类、方法和对象等。反之,若主程序是由x64平台编译出来的,而dll是x86的呢?答案。。也是不行的!说到这里,基本上可以确定一点:dll和主程序的生成平台只要一致就可以。那么问题来了!若主程序是Any CPU编译的,而dll是由x86或者x64平台编译的,又或者,主程序是x86或者x64平台编译的,而dll是由Any CPU编译的呢?正确答案就是两者在“特殊情况”下都是可行的。为什么说是“特殊情况”下呢?因为第一点(红色字体处)也提到了,Any CPU取决于操作系统,而结合第二点上半部分(红色字体处)提到的,只要dll和主程序的生成平台一致,那么也是可行的。所以,由上可知:若主程序是在Any CPU平台下编译的,那么编译dll的平台必须要和编译主程序的操作系统一致才行。若主程序是在x86或者x64平台下编译的,那么dll就必须要和主程序一致。不过有个特例:若dll由Any CPU编译的,那么这个dll就可以被32位和64位的主程序调用。这是为什么呢?请看第三点。 
3.虽说Any CPU编译出来的程序取决于操作系统,但是由Any CPU编译出来dll则取决于调用它的主程序,即若主程序是32位的,那么dll也是32位的,若主程序是64位的,那么dll就是64位的。所以dll一般采用Any CPU平台编译,而主程序一般采用x86平台编译。 
使用x86平台调试的时候,是可以一边调试一边修改代码的,而x64平台下则不行(启用了编辑并继续的)。如下图: 
这里写图片描述 
调试时修改代码提示如下: 
这里写图片描述 

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

二 、x86 win32的区别 

win32指所有的32bit的平台,而x86仅仅是指Intel和AMD的32bit平台

比如32bit的ARM平台,就包含在win32中,不在x86的范围中

三、单独说说arm

支持ARM平台

http://www.ppmy.cn/news/584561.html

相关文章

linux版本信息以及x86与x86_64的区别

一 x86、x86_64、AMD64 x86是指intel的开发的一种32位指令集,从386开始时代开始的,一直沿用至今,是一种cisc指令集,所有intel早期的cpu,amd早期的cpu都支持这种指令集,ntel官方文档里面称为“IA-32” x84…

ARM和X86、X86和X64、Intel和AMD、CPU和GPU介绍

一、ARM和X86 X86 和 ARM 都是CPU设计的一个架构。X86 用的是复杂指令集。ARM用的是精简指令集。 指令集其实就是机器码,机器码上是汇编,汇编之上是程序语言例如java、c、c#。 复杂指令集是在硬件层面上设计了很多指令,所以编程会简单些。 精…

X86架构和X64架构有什么区别?

上文:NLP与NLA的区别是什么? X86架构和X64架构是什么? X86指的是支持32位的指令集架构处理器,最初由英特尔在1978年发布的 intel 8086,这个系统主要为X86结尾所以简称X86,而X86有16位和32位,现今…

windows x86和x64的区别

内容 windows x64和x86指的是什么windows x64和x86最主要的区别如何查看自己电脑的系统类型 “windows x64和x86有啥区别”这个问题和“windows64和32有啥区别”是一样的,因为x64其实就是64位,x86其实就是32位,在口语中我们说32位会多于x86…

java x86 x64_x86 版和x64版有什么区别?

展开全部 “windows x64和x86有啥区别”这个问题和“windows64和32有啥区别”是一样的,因e69da5e887aa62616964757a686964616f31333433643735为x64其实就是64位,x86其实就是32位,在口语中我们说32位会多于x86,至少这样更符合中文的…

java x86 x64_jdk x86与jdk x64 有什么区别

展开全部 1、jdk x86与jdk x64版本不同 jdk x86:32位版e68a843231313335323631343130323136353331333431366239 jdk x64:64位版 2、jdk x86与jdk x64安装系统不同 jdk x86:可以安装在32位或64位操作系统上 jdk x64:只能安装在64位…

typescript中interface,type和Record的使用

vitevue3ts中interface,type和Record的使用 vitevue3ts中interface,type和Record的使用 interface:接口type:类型别名 基本类型组合元组类型捕捉遍历属性 扩展 interface扩展interface(合并)interface扩展i…

Python算法练习6.26

leetcode 443 压缩字符串 给你一个字符数组 chars ,请使用下述算法压缩: 从一个空字符串 s 开始。对于 chars 中的每组 连续重复字符 : 如果这一组长度为 1 ,则将字符追加到 s 中。 否则,需要向 s 追加字符&#xf…