Muh*_*uri 4 python delphi embedding
我正在使用Python4Delphi将Python嵌入到Delphi程序中.版本:Python 2.6.4,Delphi 2009,Windows XP.
导入时Delphi程序与EInvalidOp崩溃json.我跟踪了它
NaN, PosInf, NegInf = float('nan'), float('inf'), float('-inf')
Run Code Online (Sandbox Code Playgroud)
在json.decoder.
果然,该命令float('nan')引发了EInvalidOp在Delphi程序中嵌入的Python内部运行.在命令行Python(相同安装)中执行时,它只返回nan.
知道Python标准启动和嵌入式启动之间有什么区别可能导致这样的错误?
这很可能是Python使用与Delphi 不同的8087控制字(CW)设置.
试试这种代码:
var
OldControlWord: Word;
begin
OldControlWord := Get8087CW();
Set8087CW($133F);
try
// perform your Python code here
finally
Set8087CW(OldControlWord);
end;
end;
Run Code Online (Sandbox Code Playgroud)
有关$ 133F价值的更详细说明,请参阅我在Delphi中的8087 CW上的博客文章.
它需要的JCL的T8087Precision类型(这是在Jcl8087单位).
--jeroen