VS 的编译选项 build下的 platform target -- Any CPU和x86有什么影响?

VS 的编译选项 build下的platform -- Any CPU和x86有什么影响?

现在的问题是,我的一个assembly用Any CPU编译就不能在64位系统下运行了,但是用x86编译就ok

原因是如果用Any CPU编译,那么在64位机器默认的运行就是64位的,

而我的assembly需要调用一个32的COM库,所以就运行不起来

只要用x86编译,那么程序就是以32位的程序,依靠wow64来运行的,所以就ok

所以,如果assembly需要使用win32库的话,

那么编译选项就不能使用默认的Any CPU了需要注意

我去,ANY CPU的意思不是任何CPU都可以用,而是当前编译的这台机子的环境可用

大家可再了解一下

Mixed Platform vs Any CPU

 Team Build deals with solution configurations - these are the platforms (e.g. .NET or Win32) and configurations (e.g. Debug or Release) you typically see in combo boxes within Visual Studio when you have a solution loaded (if you hover over these boxes the tooltips will say "Solution Platforms" and "Solution Configurations", respectively).  When all of the projects in a solution are of the same type (e.g. C#/VB projects) the solution configurations will match up exactly with the project configurations.  Once you have projects in a solution that have mismatched configurations/platforms, Visual Studio creates the solution level configuration(s) "Mixed Platforms/Debug" and possibly "Mixed Platforms/Release".  These configurations are just mappings to individual project level configurations.

For example, if you have a C# project and a C++ project, typically "Mixed Platforms/Debug" will map to "Any CPU/Debug" for the C# project and "Win32/Debug" for the C++ project.

To see these mappings, open up the Configuration Manager (either through the Build menu or by clicking on the platform or configuration combo box and selecting Configuration Manager...).  You should see combo boxes for the Active solution configuration and the Active solution platform and then a table showing you the project level mappings.  This will show you the platform generated for each project under each solution configuration.

时间: 2024-10-10 08:12:43

VS 的编译选项 build下的 platform target -- Any CPU和x86有什么影响?的相关文章

编程杂谈——Platform target x64

在Visual Studio中选择.NET Framework框架并选用任意模板创建一个普通的Web应用工程,毫无疑问,此时应该是能够正常运行此工程的. 但是将工程属性->编译->Platform target一项中从Any CPU改成x64. 再运行工程后,页面会出现服务器错误的提示. 这是因为默认情况下Visual Studio调试时所用的IIS Express是32位的,只能运行同是32位的程序. 修正的方法是在工具->选项->工程与解决方案->Web工程中,将使用64

WARNING: The Copy Bundle Resources build phase contains this target's Info.plist file 'Info.plist'.

一个项目引用了一个系统目录的plist文件 INFOPLIST_FILE构建设置指定的名称信息.plist与你的目标相关.在构建目标,Xcode读取这个构建设置和复制referencedInfo.plist到您的应用程序包.因为Xcode自动处理.plist信息,您不应该将它添加到您的副本包资源构建阶段或使它成为一个目标成员.要解决这个警告,选择您的信息.plist从复制包资源构建阶段,然后单击删除(-)来删除它就可以啦 解决方法: WARNING: The Copy Bundle Resour

win/linux 下使用 psutil 获取进程 CPU / memory / IO 占用信息

psutil - A cross-platform process and system utilities module for Python 1. 安装 pip 安装即可. windows 下需要安装 vs2008,否则报错: Unable to find vcvarsall.bat 如果已经安装 vs2010 / vs2012 则需要设置环境变量,VS90COMNTOOLS 指向已有的 vs 变量. vs2010 设置如下: VS90COMNTOOLS = %VS100COMNTOOLS%

Ubuntu下Xilinx Platform Cable USB / Altera USB-Blaster / SEED XDS-560

在非root权限下运行Vivado/Quartus/CCS等IDE,需要使用JTAG时会出现权限问题,几乎所有的USB调试设备在Linux下都会遇到这样的问题.这里以Xilinx Platform Cable USB为例说明如何解决这样的问题. 插上USB后,查看设备 lsusbBus 001 Device 006: ID 03fd:000f Xilinx, Inc. 查看该设备的权限 ls -l /dev/bus/usb/001/006 crw-rw-rw- 1 root root 189,

Linux驱动下的platform总线架构(转)

从 Linux 2.6 内核起,引入一套新的驱动管理和注册机制:platform_device 和 platform_driver .    Linux 中大部分的设备驱动,都可以使用这套机制,设备用 platform_device 表示:驱动用 platform_driver 进行注册.        Linux platform driver 机制和传统的 device driver 机制(即:通过 driver_register 函数进行注册)相比,一个十分明显的优势在于 platform

Linux下的top命令、%cpu和cps(s)到底是什么意思呢!

在linux的top命令里的cpu信息是什么意思呢?Cpu(s): 62.1% us, 15.9% sy,   0.1% ni, 19.4% id,   2.0% wa,   0.1% hi,   0.4% siMem:    8247956k total,   8232004k used,     15952k free,    205240k buffersSwap:   8191992k total,        48k used,   8191944k free,   7156092k

linux下用top命令查看cpu利用率超过100%

这里显示的所有的cpu加起来的使用率,说明你的CPU是多核,你运行top后按大键盘1看看,可以显示每个cpu的使用率,top里显示的是把所有使用率加起来 按下1后可以看到我的机器的CPU是双核的.%Cpu0,%Cpu1 这里我们也可以查看一下CPU信息:在命令行里输入:cat /proc/cpuinfo 这里可以看到cpu cores       : 2

linux下一个C语言要求CPU采用

部分   从灾难中 本来我想写一个小程序来测试CPU其他工具利用它可以检验类数据的性能.以后参考IPbench中间cpu_target_lukem插件实现我们的功能.原理非常简单:就是我们给程序设置了极低的优先级,假设有不论什么计算任务都会打断它,而假设没有计算任务,我们的程序就会占用cpu时间,所以我们的程序的执行时间基本上能够算作CPU的闲暇时间. 所以我们计算总的CPU利用率的方法就是  : CPU利用率 = 1 - 程序占用cpu时间/程序总的执行时间. 主要功能实现代码例如以下: [c

关于CentOS 6下Hadoop占用系统态CPU高的处理办法【转】

一次不经意发现Hadoop的系统态CPU使用率很高,然后百度一下居然是个已知问题. RHEL6优化了内存申请的效率,而且在某些场景下对KVM的性能有明显提升:http://www.Linux-kvm.org/wiki/images/9/9e/2010-forum-thp.pdf. 而Hadoop是个高密集型内存运算系统,这个改动似乎给它带来了副作用.理论上运算型Java程序应该更多的使用用户态CPU才对,Cloudera官方也推荐关闭THP.于是参考一些文章作了调整: # for hadoop