gpt4 book ai didi

c# - 系统算术异常: Delphi calling C# DLL via C++/CLI wrapper

转载 作者:行者123 更新时间:2023-11-30 21:23:59 25 4
gpt4 key购买 nike

我有一个使用 XslCompiledTransform 类进行 xml 操作的 C# DLL。我为 C# DLL 偷了一个 C++/CLI 包装器。

当使用 Delphi 5 实现 C++/CLI 包装器时,我收到一个系统算术错误。这是 Delphi 5 声明:

procedure XsltMethod(XmlPath, XsltPath: PWideChar); cdecl; external 'ahma.dll';

C# 公共(public)方法的主体创建一个新的 XslCompiledTransform 对象,当新创建的对象运行其 load 方法时,异常会弹出。例如:

XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(XsltFile);

如前所述,.NET DLL 抛出的异常是系统算术异常。这仅在从 Delphi 可执行文件调用时发生。

我想我应该提到再次调用对象的 load 方法工作正常。因此,捕获异常并运行该方法以进行第二次“通过”就像弹出窗口阻止程序一样。但当然也有异常(exception)。

最佳答案

也许您会遇到浮点控制寄存器中的差异,如 here 所述.另见 this质量控制报告。您可以尝试调用 Set8087CW($133F);在您的 Delphi 程序中。之后要小心 Delphi 代码中的浮点问题。

关于c# - 系统算术异常: Delphi calling C# DLL via C++/CLI wrapper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1434680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com