我在優化算法上工作,所以性能確實很重要。使用VS 2010進行編譯時,該算法的速度比VS 2008快8倍。谷歌搜索表明,這不是我的錯(例如見https://stackoverflow.com/a/5560184/890355)。問題是,最終的項目必須VS 2008在VC++ 2008項目中使用VC++ 2010運行時庫
我更傾向於解決方案是建立在我2010 VS算法DLL,然後將其鏈接到主項目下建造的。 VS 2008下的DLL可以使用VC++ 2010運行時庫嗎?如果是這樣,那麼做到最痛苦的方式是什麼? 有沒有其他想法? 謝謝。
C++編譯器不支持C++ 0x中,如果這是你的要求。當然,如果您想要避免升級到Visual Studio 2010和/或Visual Studio 2012,您總是可以使用更新的編譯器。一種可能的解決方案是使用不同的編譯器編譯優化算法本身,並引用由所述編譯器創建的輸出。 –
你的庫是否在對象之間傳遞對象,並期望對方釋放對象?圖書館混合可能會起作用,但有一些相當有限的警告(並使用C++容器可能會導致不好的魔法):http://stackoverflow.com/questions/6531401/how-to-use-vs2010-built-dlls-in -vs2008 - 簡而言之,如果你能保持所有內容的一致性並且只使用一個C++運行庫,那就更容易了。 – birryree
當你使用VS2010的#include文件時,這隻能是一個好的結果。哪個不行,VS2008無法編譯它們,特別是因爲你在移動語義之後進行了perf的改進。 –