Здравствуйте, TYuD, Вы писали:
TYD>Что такое ABI?
Об этом вкратце можно почитать
здесь.
TYD>Если бы только С-шный интерфейс был ограничением, то и сошло бы (так и планировалось). Но внутри ДЛЛки хочется объекты юзать. Вот потоки пришлось отрубить, VCL.. Уже неприятно. Но более волнует вопрос о том, сколько еще подводных камней?
По идее, объекты внутри длл, собранной другим компилятором, использовать можно. Но перечислить все подводные очень сложно. Если у вас билдер.длл работала ранее, то наверняка там все нормально с соглашением о вызовах. Если у вас при этом:
— одинаковая разрядность обоих компиляторов
— все экспортируемое — extern C
— одинаковое выравнивание в структурах
— аккуратно обрабатываются исключения внутри длл, не давая им вылезти наружу в экзешник
— ресурсы (включая память), захваченные в экзешнике, не освобождаются в длл (и наоборот),
то больше посоветовать ничего не могу. Скорее всего, есть еще достаточно неучтенных проблем, которые вым придется решать опытным путем. Увы, только методом проб и ошибок.