Delphi的时间 x87 fpu control word 精度设置的不够
在win7 64位系统下,一个DELPHI写的DLL注入一个C语言程序后. 出现非常奇怪的浮点数相加出错的情况. (注: 在XP系统下是正常的). ? 这个显然是因为该程序的?x87?fpu?control?word?精度设置的不够,只支持单精度浮点运算的结果。可以用?delphi?rtl?自带的?Get8087CW/Set8087CW?取得/设置该16位值。在该线程中取得?x87?cw?的值,用16位形式表示成?0xABCD,该线程的?B?应该为0,把该位设置为2或3即可(delphi?默认为3,用来支持80位的?Extended?类型)。到?intel?手册?basic?卷里找?x87?fpu?章里的说明,看看就明白了。 ? https://bbs.csdn.net/topics/370045425 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |