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

Posted 银狐U3D游戏开发

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.
 

以上是关于VS 的编译选项 build下的 platform target -- Any CPU和x86有什么影响?的主要内容,如果未能解决你的问题,请参考以下文章

如何定制android源码的编译选项

C# 项目的编译器选项

VS报错:The build tools for v140 (Platform Toolset = 'v140') cannot be found

How to build Windows Android2.3 SDK怎么编译windows下的android2.3 SDK

编译VS2013环境下的boost库的命令行语句

修复PlatformToolsets丢失问题(为VS2013以上版本安装VC90,VC100编译器)