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

简介: VS 的编译选项 build下的platform -- Any CPU和x86有什么影响? 现在的问题是,我的一个assembly用Any CPU编译就不能在64位系统下运行了,但是用x86编译就ok   原因是如果用Any CPU编译,那么在64位机器默认的运行就是64位的, 而我的ass...

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.
 
相关文章
|
Android开发
【Android 安装包优化】动态库打包配置 ( “armeabi-v7a“, “arm64-v8a“, “x86“, “x86_64“ APK 打包 CPU 指令集配置 | NDK 完整配置参考 )
【Android 安装包优化】动态库打包配置 ( “armeabi-v7a“, “arm64-v8a“, “x86“, “x86_64“ APK 打包 CPU 指令集配置 | NDK 完整配置参考 )
1296 0
【Android 安装包优化】动态库打包配置 ( “armeabi-v7a“, “arm64-v8a“, “x86“, “x86_64“ APK 打包 CPU 指令集配置 | NDK 完整配置参考 )
编译OpenJDK11:configure: error: Target CPU mismatch. We are building for x86_64 but CL is for “版“; exp
编译OpenJDK11:configure: error: Target CPU mismatch. We are building for x86_64 but CL is for “版“; exp
174 0
编译OpenJDK12:Target CPU mismatch. We are building for x86_64 but CL is for ""; expected "x64"
编译OpenJDK12:Target CPU mismatch. We are building for x86_64 but CL is for ""; expected "x64"
122 0
编译OpenJDK8:Target CPU mismatch. We are building for x86_64 but CL is for ""; expected "x64"
编译OpenJDK8:Target CPU mismatch. We are building for x86_64 but CL is for ""; expected "x64"
115 0
|
监控 安全 算法
Intel、AMD CPU中发现新漏洞!黑客可通过“Hertzbleed”攻击窃取加密密钥|x86 CPU 节电模式均中招
Intel、AMD CPU中发现新漏洞!黑客可通过“Hertzbleed”攻击窃取加密密钥|x86 CPU 节电模式均中招
190 0
Intel、AMD CPU中发现新漏洞!黑客可通过“Hertzbleed”攻击窃取加密密钥|x86 CPU 节电模式均中招
|
Java Linux Android开发
【Android 逆向】x86 CPU 架构体系 ( 堆内存 | 栈内存 | 函数调用 )
【Android 逆向】x86 CPU 架构体系 ( 堆内存 | 栈内存 | 函数调用 )
199 0
【Android 逆向】x86 CPU 架构体系 ( 堆内存 | 栈内存 | 函数调用 )
|
缓存 Android开发 异构计算
【Android 逆向】x86 CPU 架构体系 ( CPU 模型 | 内存模型 )
【Android 逆向】x86 CPU 架构体系 ( CPU 模型 | 内存模型 )
242 0
【Android 逆向】x86 CPU 架构体系 ( CPU 模型 | 内存模型 )
|
芯片
AMD不进一步对其中国合资公司授权x86 IP,国产CPU有未来吗?
AMD并未向其中国合资公司进一步授权芯片设计又一次证明,中国的芯片发展跟随别人的步伐将无法取得领先。
1177 0
|
双11
基础设施助力双11(一):X86 CPU的定制和演进
在这个奇迹不断的过程中,稳如磐石的基础设施也发挥了至关重要的作用,我们接下来会做一个基础设施助力双11的系列,给大家做一些技术分享,有兴趣的同学请持续关注噢。
1233 0
|
开发框架 .NET 开发工具
检查.net dll构建的目标平台是any cpu、x86、x64
原文:检查.net dll构建的目标平台是any cpu、x86、x64 有时候,需要检查构建的dll是否针对正确的平台 可以使用CorFlags.exe(它是.NET Framework SDK的一部分)从dll中查找此信息。
1263 0