一 、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平台

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

  1. 如何在vs2008,vs2010的解决方案管理器中快速定位文件位置

    1.如果当前文件正在代码编辑器中显示的话,你可以这样设置: Tools->Options->Projects and Solutions. 然后在右侧界面中,把 Track Active ...

  2. C#项目解决方案管理器中将*.Designer.cs文件放到*.cs文件下

    写C#项目时,会复用到以前项目中的.cs文件:在解决方案管理器中手动添加窗口文件后,*.Designer.cs文件和*.resx文件不会在.cs文件下. 原项目中Form1的设计器文件和资源文件在Fo ...

  3. ArcGIS中样式管理器中的各种样式(指南针样式,色带样式等等)丢失,显示为空白的解决方案

    ArcGIS中样式管理器中的各种样式(指南针样式,色带样式等等)丢失,显示为空白的解决方案 在反复更换ArcGIS版本时,很有可能出现样式管理器中的各种样式全部丢失的问题.我的10.2版本也出现过这种 ...

  4. 流行软件包管理器中存在多个安全缺陷

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 专栏·供应链安全 数字化时代,软件无处不在.软件如同社会中的"虚拟人",已经成为支撑社会正常运转的最基本元素之一,软件的安全 ...

  5. “解决方案资源管理器”中不能自动选择正在编辑的文档

    本来正在编辑的文档应该在"解决方案资源管理器"中自动选中的,但是我的VS2005机器好像没有这个功能,后来发现 "工具->选贤"里边的"项目和解 ...

  6. vs2005 创建解决方案不显示,解决方案管理器中看不到解决方案节点的解决办法...

    解决方案管理器中看不到解决方案节点的解决办法 安装了vs2005,用了一段时间后,突然发现在使用的时候发现不能生成解决方案,比如我新建asp.net网站,进入后可以看到解决方案资源管理器,但却不能生成 ...

  7. 这五款热门商用密码管理器中均存在缺陷,可导致用户凭证被盗

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 英国约克大学的研究员 Michael Carr 和 Siamak F. Shahandashti从五款热门商用密码管理器 LastPa ...

  8. 元数据管理器中存在错误

    1.问题现象: 在ssms中,报元数据管理器中存在错误.从文件"\\?\C:\Program Files\Microsoft SQL Server\MSSQL.2\OLAP\Data\Tfs ...

  9. smss.exe是什么进程?详解Windows会话管理器中的smss.exe

    smss.exe是什么进程?详解Windows会话管理器中的smss.exe 进程综述 smss.exe是什么进程?详解Windows会话管理器中的smss.exe-冯金伟博客园smss.exe是什么 ...

  10. 注册数据源时,ODBC数据源管理器中找不到Access驱动程序

    我们知道在通过MFC的ODBC管理器来访问一个数据库的时候,必须要用ODBC管理器注册一个数据源. 但是在实践中发现,ODBC管理器中只有SOL Server驱动程序,并没有我们想要的Access驱动 ...

最新文章

  1. sshd修改端口后几次启动失败
  2. 思科路由器的基本设置(主机名,密码)
  3. c++直角坐标系与极坐标系的转换_平面向量的奇技淫巧——斜坐标系的一系列低级研究...
  4. 信息学奥赛一本通(2018:【例4.3】输出奇偶数之和)
  5. MIT6.830 lab5 B+ Tree Index 实验报告
  6. guido发布python版本的年份_Guido van Rossum
  7. 微软MVP推荐《软件设计精要与模式(第2版)》
  8. PPT:Semi-supervised Classification with Graph Convolutional Networks
  9. 贝加莱plc用c语言,贝加莱PLC快速入门.pdf
  10. [嵌入式linux]RTL8111/RTL8168网卡内核驱动安装
  11. WIN10 无法保存游戏配置文件 每次进游戏都需要重新设置的问题解决方案
  12. LeetCode每日一题——592. 分数加减运算
  13. c语言建立文件的时候会飞动,C语言:简单而不易懂的声明(二)
  14. PRCS-1016 : Failed to resolve Single Client Access Name
  15. windows系统常用命令
  16. 这些带斑点的蛇实在太漂亮了,盘点18种带斑点的蛇
  17. Linux内网离线安装nginx(rpm包安装方式)
  18. Cesium之地图清晰度解决方案
  19. 接口调用-【1】顺丰运单查询
  20. 重现CD情怀——飞利浦复古桌面音响臻选上市

热门文章

  1. conv2d() received an invalid combination of arguments问题解决
  2. 什么是DNS的正向解析与反向解析?代码实现?
  3. jemter ramp-up
  4. 计算机二级北京工业大学耿丹学院官网,北京工业大学耿丹学院
  5. 深入探访支付宝双11十年路,技术凿穿焦虑与想象极限 1
  6. word两种html区别,word文本框有哪两种方式?
  7. 软件项目开发中各岗位职责
  8. helper java_请教问题,helper类在java中的作用。
  9. 前后端分离之Web前端架构设计
  10. OpenCV图像处理(下) 边缘检测+模板匹配+霍夫变换