【发布时间】:2011-05-09 19:27:10
【问题描述】:
我有一个使用 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 对象,并且当新创建的对象运行其 load 方法时会立即弹出异常。例如:
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(XsltFile);
如前所述,.NET DLL 引发的异常是系统算术异常。这只发生在从 Delphi 可执行文件中调用时。
我想我应该提到再次调用对象的 load 方法可以正常工作。因此,捕获异常并运行该方法进行第二次“通过”就像弹出窗口阻止程序一样。但当然也有例外。
【问题讨论】:
-
不能因为不够详细而责备帖子,这是肯定的。它实际上可能有助于对事物进行一些编码,并将除短 sn-ps 之外的所有内容放入您喜欢的文件中。可能会让更多人以这种方式阅读它。
-
哈!是的,我是菜鸟。感谢您对我的耐心:)
标签: c# delphi interop c++-cli pointer-arithmetic