Добрый день.
Написал DLL(UDF) на FreePascal.
UDF обрабатывает строки.
При компиляции в Delphi - все работает.
При компиляции в FPC 2.2.0 и использовании в FireBird 1.5.5 Classic
при одновременном вызове из двух приложений сервер падает с Access Violation. При работе с SuperServer такого не наблюдается.
ИМХО, это из-за того, что библиотека получилась не thread-safe.
Убрал все функции, используюшие кривой тип AnsiString, перешел на PChar и функции из модуля strings.
Сервер стал падать реже, но на 5-6 запусков функции все равно происходит ошибка.
try except не помогает, подозреваю, что проблема с передачей параметров.
В принципе, можно было бы списать на кривизну собственных ручек, НО: при компиляции в Delphi таких проблем нет.
Какие будут мысли?