如何在VisualStudio 2010中构建64位托管C++ DLL? 我有一个托管C++ DLL,它以x86格式构建得很好。但是,当我在configuration manager中将格式更改为x64时,它将无法识别.Net名称空间,如System等

如何在VisualStudio 2010中构建64位托管C++ DLL? 我有一个托管C++ DLL,它以x86格式构建得很好。但是,当我在configuration manager中将格式更改为x64时,它将无法识别.Net名称空间,如System等,c++,.net,visual-studio-2010,64-bit,managed-c++,C++,.net,Visual Studio 2010,64 Bit,Managed C++,要构建64位版本的应用程序,我还应该更改什么 我需要能够为x64和x86构建应用程序。当您将项目更改为目标x64时,告诉编译器以.NET Framework为目标的设置显然没有转移过来 检查项目的属性以确保所有x64设置与x86设置匹配 更具体地说,您正在寻找公共语言运行时支持属性。在VisualStudio的最近版本中,这可能应该设置为公共语言运行时支持,旧语法/CLR:OrdCuffic用于托管C++。 当您将项目更改为目标x64时,告诉编译器以.NET Framework为目标的设置显然没

要构建64位版本的应用程序,我还应该更改什么


我需要能够为x64和x86构建应用程序。

当您将项目更改为目标x64时,告诉编译器以.NET Framework为目标的设置显然没有转移过来

检查项目的属性以确保所有x64设置与x86设置匹配

更具体地说,您正在寻找公共语言运行时支持属性。在VisualStudio的最近版本中,这可能应该设置为公共语言运行时支持,旧语法/CLR:OrdCuffic用于托管C++。
当您将项目更改为目标x64时,告诉编译器以.NET Framework为目标的设置显然没有被转移

检查项目的属性以确保所有x64设置与x86设置匹配

更具体地说,您正在寻找公共语言运行时支持属性。在VisualStudio的最近版本中,这可能应该设置为公共语言运行时支持,旧语法/CLR:OrdCuffic用于托管C++。
您将创建一个“x64”配置。还有一个下拉框用于“从中复制设置”。还必须将其正确设置为从其他配置复制设置

但由于您已经这样做了,可能所有的程序集引用都没有复制到“x64”配置中。是否已签入x64项目设置以查看它们是否存在?打开项目设置并选择: 公共属性->框架和引用
然后确保您至少有一个对系统的引用

您将创建一个“x64”配置。还有一个用于“从复制设置”的下拉框。还必须将其正确设置为从其他配置复制设置

但由于您已经这样做了,可能所有的程序集引用都没有复制到“x64”配置中。是否已签入x64项目设置以查看它们是否存在?打开项目设置并选择: 公共属性->框架和引用
然后确保您至少有一个对系统的引用

引用在那里,但它们指向C:\Program files x86\folderC:\Program files x86\reference Assemblys\Microsoft\Framework\.NETFramework\v4.0\System.dllYeah中的文件,这很好。引用在那里,但它们指向C:\Program files x86\folderC:\Program files x86\Reference Assembly\Microsoft\Framework\.NETFramework\v4.0\System.dllYeah中的文件,这很好。是的,clr已禁用,请将其设置为公共语言运行时支持/clr。现在我得到以下链接器错误:错误LNK1561:必须定义入口点。你知道还有什么遗漏吗?@Arsen:。您说您正在构建一个DLL,但您的项目的配置类型属性(见上面的屏幕截图)可能设置为构建一个可执行文件。将其更改为构建DLL。正如我所建议的,检查其他属性以确保它们与您的工作x86配置相匹配。知道了。配置类型必须已设置为dynamic library,这已将其修复。谢谢!是,clr已禁用,请将其设置为公共语言运行时支持/clr。现在我得到以下链接器错误:错误LNK1561:必须定义入口点。你知道还有什么遗漏吗?@Arsen:。您说您正在构建一个DLL,但您的项目的配置类型属性(见上面的屏幕截图)可能设置为构建一个可执行文件。将其更改为构建DLL。正如我所建议的,检查其他属性以确保它们与您的工作x86配置相匹配。知道了。配置类型必须已设置为dynamic library,这已将其修复。谢谢!