簡體   English   中英

VS2010本機多目標

[英]VS2010 Native Multi-Targeting

我在Win7開發機器上安裝了VS2005,VS2008和VS2010。 我有一個使用第三方DLL的特定項目,當VS2010構建EXE項目時(在以v100或v90工具集為目標時),在LoadLibrary()調用期間會獲取異常。當直接由VS2005或VS2008構建時,它可以完美地工作。

根據李少(Microsoft的)2009年博客文章:

http://blogs.msdn.com/b/vcblog/archive/2009/12/08/c-native-multi-targeting.aspx

我應該能夠打開VS2010項目並將Platform Toolset從v100更改為v90,然后VS2010實際上將使用VS2008編譯器,標頭和庫來構建程序。 如果是這樣,那么它就不會“正確”地進行操作,因為以這種方式構建項目時不會加載DLL。 我嘗試查看構建日志以驗證使用了哪個編譯器,但是我的日志中沒有路徑或版本號,因此很失敗。

這是直接寫入Win32Apis的普通C(不是C ++,不是MFC,不是.NET)項目。 有什么辦法可以解決這個問題,還是我只是為一個項目(在構成整個系統的100多個項目中)使用了不同的編譯器?

救命!

看看水仙花: http : //daffodil.codeplex.com/

安裝Daffodil之后,您將能夠使用VS 2010使用舊版本的庫來構建項目。

我想我已經解決了。 看起來,盡管VS2010可以愉快地運行VS2008編譯器,鏈接器等。VS2010 不會將項目擱淺。 當項目導入到VS2010時,命令行中添加了一些新的默認設置,顯然,其中至少有一個與VS2008的差異足以使我正在使用的DLL無法加載。

當我將“ 數據執行保護(DEP)”的“高級鏈接器”設置從“是”(默認)更改為“否”時,我的程序再次開始工作! 實際上,我什至不再需要使用v90工具集進行編譯-整個問題是由/ NXCOMPAT鏈接器命令行開關的新默認設置引起的。 在VS2005 IDE(創建項目的地方)的項目設置中甚至沒有引用/ NXCOMPAT開關,而是運行“ link /?”。 VC8 bin文件夾中的,表明該開關是已知的,默認值為NO

不幸的是,Visual Studio IDE不包括已在新版本中更改過的項目所使用的默認設置的列表。 如果那太困難了,導入者應該使用舊的默認值來指定更改的設置,否則項目導入不正確,不是嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM