【发布时间】:2012-01-29 11:49:03
【问题描述】:
我有一个托管的 c++ dll,它以 x86 格式构建得很好。但是,当我在配置管理器中将格式更改为 x64 时,它无法识别 .Net 命名空间,例如 System 等。
为了能够构建 64 位版本的应用,我还应该进行哪些更改?
我需要能够为 x64 和 x86 构建应用程序。
【问题讨论】:
标签: c++ .net visual-studio-2010 64-bit managed-c++
我有一个托管的 c++ dll,它以 x86 格式构建得很好。但是,当我在配置管理器中将格式更改为 x64 时,它无法识别 .Net 命名空间,例如 System 等。
为了能够构建 64 位版本的应用,我还应该进行哪些更改?
我需要能够为 x64 和 x86 构建应用程序。
【问题讨论】:
标签: c++ .net visual-studio-2010 64-bit managed-c++
当您将项目更改为以 x64 为目标时,告诉编译器以 .NET Framework 为目标的设置显然没有被转移。
检查项目的属性,确保所有 x64 设置都与 x86 设置匹配。
更具体地说,您正在寻找“公共语言运行时支持”属性。在最新版本的 Visual Studio 中,对于托管 C++,这可能应该设置为 Common Language Runtime Support, Old Syntax (/clr:oldSyntax)。
【讨论】:
您将创建一个“x64”配置,有第二个下拉框用于“复制设置自”。这也必须正确设置为从您的其他配置中复制设置。
但既然您已经这样做了,也许您的所有程序集引用都没有复制到您的“x64”配置中。您是否检查过您的 x64 项目设置以查看它们是否存在?打开您的项目设置并选择: 通用属性 -> 框架和参考 然后确保您有对 System 的引用(至少)
【讨论】: