У меня есть C # DLL, которая использует класс XslCompiledTransform для манипуляций с XML. Я украл оболочку C ++ / CLI для C # DLL.
При использовании 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 объекта снова работает нормально. Таким образом, перехват исключения и запуск метода для второго прохода действует как блокировщик всплывающих окон. Но, за исключением, конечно.