我有一個託管的c + + dll,它在x86格式建立罰款。但是,當我在配置管理器中將格式更改爲x64時,它不會識別.Net命名空間,如System等。如何在visual studio 2010中構建64位受管理的C++ dll?
我還應該更改哪些內容才能構建64位版本的應用程序?
我需要能夠爲x64和x86構建應用程序。
我有一個託管的c + + dll,它在x86格式建立罰款。但是,當我在配置管理器中將格式更改爲x64時,它不會識別.Net命名空間,如System等。如何在visual studio 2010中構建64位受管理的C++ dll?
我還應該更改哪些內容才能構建64位版本的應用程序?
我需要能夠爲x64和x86構建應用程序。
當您將項目更改爲目標x64時,告知編譯器將.NET Framework作爲目標的設置顯然不會被轉移。
檢查項目的屬性以確保所有x64設置都與x86設置匹配。
更具體地說,您正在尋找「公共語言運行時支持」屬性。在Visual Studio的最新版本中,對於Managed C++,這應該設置爲Common Language Runtime Support, Old Syntax (/clr:oldSyntax)
。
您可以創建一個「64」配置有第二個下拉框「從複印設置」。這也必須正確設置從您的其他配置複製設置。
但是既然你已經這麼做了,也許你所有的程序集參考都沒有複製到你的'x64'配置。你有沒有檢查你的x64項目設置,看看他們是否在那裏?打開你的項目設置和選擇: 通用屬性 - >框架和參考 然後確保你有系統(至少)參考
引用在那裏,但它們指向C:\ Program Files(x86)\文件夾中的文件 – 2012-01-29 12:03:25
該文件夾中的哪個位置? – 2012-01-29 12:06:56
C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0 \ System.dll – 2012-01-29 12:09:57
肯定的,CLR被禁用,將其設置爲公共語言運行庫支持(/CLR)。現在我收到以下鏈接器錯誤:「錯誤LNK1561:入口點必須定義」。任何想法還缺少什麼? – 2012-01-29 12:08:01
@Arsen:[檢查MSDN](http://msdn.microsoft.com/en-us/library/ky737ya4.aspx)。你說你正在構建一個DLL,但是你的項目的「Configuration Type」屬性(見上面的截圖)可能被設置爲構建一個可執行文件。將其更改爲構建一個DLL。正如我所建議的那樣,檢查其他屬性以確保它們符合您正在使用的x86配置。 – 2012-01-29 12:09:34
好的。得到它了。配置類型必須已設置爲動態庫,並已修復它。非常感謝! – 2012-01-29 12:12:20