Я могу сбросить регистры CTRL FPU следующим образом:
http://support.microsoft.com/kb/326219
Но как мне сохранить текущие регистры и восстановить их позже?
Это из .net кода ..
То, что я делаю, это от Delphi, вызывающего DLL-файл .net в качестве COM-модуля. Проверка регистров Ctrl в delphi дает одно значение, проверка с помощью controlfp в коде .net дает другое значение.
Что мне нужно, так это главное:
_controlfp(_CW_DEFAULT, 0xfffff);
Таким образом, мои вычисления с плавающей точкой в коде .net не дают сбоя, но я хочу восстановить регистры Ctrl при возврате.
Может быть, нет? Может быть, Delphi сбрасывает их при необходимости?
Я писал об этой проблеме здесь .