2010-08-21 70 views

回答

2

每個Visual Studio版本都包含C和/或C++運行時的更新版(和不同版本)。 This msdn page(根據:「存在什麼問題......」)很好地解釋了問題所在。這裏描述的是msvcrt.dll < - > msvcrt10.dll對每個msvcrtXX.dll都有效。

它不應該出現任何值得注意的問題,但建議使用相應版本的VS的二進制版本。

2

通常的問題是,使用不同版本的Visual Studio生成的代碼使用不同版本的運行時庫。

根據庫的設計方式,這通常會導致問題,因爲有多個版本的(例如)分配和釋放函數,並且在一個運行時庫中分配的指針傳遞給它時可能很容易發生堆錯誤一個不同的釋放函數。無論運行時庫是動態還是靜態鏈接,都會發生這種情況。

即使通過良好的庫設計避免了這個問題,但在同一個程序中擁有多個C堆仍然效率不高。

存在與運行時庫功能,依賴於靜態地保持信息的其他潛在問題,如srandrand,語言環境和醜陋的傳統功能,如strtok

即使可以跨不同版本的Visual Studio進行鏈接,它通常也不會更安全。

相關問題