5
VS2012的靜態鏈接版本似乎存在問題。在舊系統上啓動控制檯應用程序會導致異常,無論何時使用流,儘管新系統根本沒有問題。 要重現此錯誤就足夠了使用Visual Studio 2012進行靜態鏈接的msvcrt的例外
- 在VS2012
- 添加行
std::ofstream f;
或std::cout << "Hello World";
在主函數 創建一個新的控制檯應用程序(包括fstream的或的iostream根據需要) - 開關v110_xp工具集(如果Windows XP需要)
- 切換到靜態鏈接庫(/ MT)
- 在舊系統上啓動exe 總是存在一個exceptio ñ。
使用ofstream或cout刪除行總是可以解決問題。 切換到動態鏈接運行時庫(/ MD)總是可以解決問題。 在ofstream的情況下,使用尺寸優化(/ O1)或不優化(/ Od)而不是速度優化(/ O2)解決了問題。
有沒有人有想法或提示?提前致謝。
您是否曾嘗試在Windows XP的調試器下運行該應用程序以找出訪問衝突發生的位置?如果您沒有在Windows XP上安裝Visual Studio,則可以設置[遠程調試](http://msdn.microsoft.com/en-us/library/vstudio/y7f5zaaa.aspx)。 Visual Studio附帶CRT實現的源代碼。確保將目錄添加到* VC++目錄*。 – IInspectable
@IInspectable:感謝遠程調試的想法。我會嘗試一下,但是使用VS2012和XP進行遠程調試似乎並不容易:[我可以在Windows XP上使用Visual Studio 2010遠程調試器從Visual Studio 2012調試.Net 4.0應用程序嗎?](http:// stackoverflow .com/questions/14444055/can-i-use-the-visual-studio-2010-remote-debugger-on-windows-xp-to-debug-a-net-4) – user2766445
@IInspectable:遠程調試不起作用與Visual Studio 2012和Windows XP。 Visual Studio 2012遠程調試器需要「更新版本的Windows」。我試圖安裝Visual Studio 2010遠程調試器,並嘗試從Visual Studio 2012進行連接 - 這不起作用。 – user2766445