【发布时间】:2014-04-03 08:15:10
【问题描述】:
我有一个包含 C# 项目和 C DLL 的解决方案。解决方案设置为“混合平台”,C# 项目设置为“任何 CPU”。
当 DLL 设置为针对 x64 编译时,我遇到了崩溃。但是当 DLL 设置为针对 x86 编译时,一切正常。
操作系统是 Windows7 x64。
无论我尝试哪个,Environment.Is64BitProcess 都会给出 false。
我的理解是“任何 CPU”默认情况下会编译为 x64,因为操作系统是 x64。很明显,我错了。
谢谢你们。
【问题讨论】:
-
这是 Visual Studio 中的可用性噩梦,VS2010 真的搞砸了。解决方案的平台名称与 C# 项目无关,它只与 C++ 项目有关。您只关心一个设置,右键单击您的 EXE 项目,属性,构建选项卡,平台目标/首选 32 位。为调试和发布配置设置它。您希望 x86 让 C 代码保持愉快。
-
是的,设置了“首选 32 位”标志。在对这些选项进行了一些处理之后,我让它适用于 x64 和 Any CPU。谢谢。
标签: c# visual-studio-2012 dll compilation