FIX: 無法設定使用 _controlfp() 排清零模式

Windows XP 支援已結束

Microsoft 於 2014 年 4 月 8 日結束對 Windows XP 的支援。此變更已影響您的軟體更新和安全性選項。 瞭解這對您的意義為何且如何持續受保護。

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

307611
本文已封存。本文係以「現狀」提供且不會再更新。
徵狀
_controlfp _DN_FLUSH (_MCW_DN) 的呼叫不會不開啟 IA64 應用程式的清除零模式。
發生的原因
這是因為 IA64 C 執行階段程式庫中有錯誤。
解決方案
如果要解決這個問題,取得最新的 Service Pack 的 Windows XP。如需詳細資訊按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
322389如何取得最新的 Windows XP Service Pack
此修正程式的英文版應該具有下列檔案屬性或更新版本:

日期時間版本大小名稱平台
24-Sep-200110: 587.0.2600.14 (xpclnt_qfe.010827 1804)941,056Msvcrt.dllia64

注意: 如果購自原始設備製造商 (且您需要此修正程式) 時,這項產品已經已安裝在您的電腦上,請呼叫上述網站上所列出的薪資每一事件號碼。如果您連絡 Microsoft 以取得此修正程式,可能會收取的費用。此費用是 refundable 如果判定您僅需要您所要求的修正程式。不過,此費用是非 refundable,如果您免費技術支援期間已經過期,要求額外的技術支援人員,或您並不適合進行標準的免費技術支援人員。

在 IA64 應用程式從 2001 年八月 (組建 9234) 用以建置的 Win64 工具就會發生這個問題平台軟體開發套件 (SDK)。此修正程式只是 CRT.dll 檔案。CRT 靜態程式庫的修正程式會在即將推出的平台 SDK 出貨。
狀況說明
Microsoft 已確認這是在本文開頭所列之 Microsoft 產品中的有錯誤。這個問題最早是在 Windows XP Service Pack 1 中獲得修正。
其他相關資訊
若要重現問題,請使用下列的範例程式碼和 64 位元 C/C + + 編譯器和連結器,可從 64 位元工具在 Windows 平台 SDK 中建置 64 位元二進位。插入在 _controlfp 函式上的中斷點,並執行它中 (針對 64 位元) 在 WinDbg 偵錯工具下。之前和之後 _controlfp 函數執行,請檢查 fpsr"暫存器值。您應該會看到 sixth 最小顯著性的位元 (0 基礎) 未設定至 _controlfp 呼叫之後。安裝修正程式之後,應該會設定這個位元。
#include <stdio.h>#include <float.h>int main( int argc, char ** argv){  printf( "Before calling _controlfp()\n");  _controlfp( _DN_FLUSH, _MCW_DN);  printf( "After calling _controlfp()\n");}				
Denormals 為零 ftz sf0

警告:本文已自動翻譯

內容

文章識別碼:307611 - 最後檢閱時間:02/24/2014 15:36:28 - 修訂: 2.5

  • Microsoft Windows XP Professional x64 Edition
  • The C Run-Time (CRT)
  • kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbbug kbfix kboswin2000fix kbwinxpsp1fix KB307611 KbMtzh
意見反應