我有一个使用 XslCompiledTransform 类进行 xml 操作的 C# DLL。我为 C# DLL 偷了一个 C++/CLI 包装器。
使用 Delphi 5 实现 C++/CLI 包装器时,我收到系统算术错误。这是 Delphi 5 声明:
procedure XsltMethod(XmlPath, XsltPath: PWideChar); cdecl; external 'ahma.dll';
C# 公共方法的主体会创建一个新的 XslCompiledTransform 对象,并且当新创建的对象运行其加载方法时会立即弹出异常。例如:
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(XsltFile);
如前所述,.NET DLL 引发的异常是系统算术异常。这只发生在从 Delphi 可执行文件中调用时。
我想我应该提到再次调用对象的加载方法可以正常工作。因此,捕获异常并运行该方法进行第二次“通过”就像弹出窗口阻止程序一样。但当然也有例外。